In languages with currying, you could avoid the builder pattern by currying the constructor.