Operations with variable number of arguments, at least two required
Corresponds to the many operations that are defined for two arguments and
marked as :left-assoc or :pairwise (such as and or distinct). Note that
the resulting representation in terms of AST will be the n-ary function application,
and not the desugared version (successive binary operation). This choice seems to
make sense for operations such as distinct that would require an exponential
blowup to desugar the expression, while the latest phase of the solvers might
be able to do something smarter with the more concise operation.
Operations with variable number of arguments, at least two required
Corresponds to the many operations that are defined for two arguments and marked as :left-assoc or :pairwise (such as
and
ordistinct
). Note that the resulting representation in terms of AST will be the n-ary function application, and not the desugared version (successive binary operation). This choice seems to make sense for operations such as distinct that would require an exponential blowup to desugar the expression, while the latest phase of the solvers might be able to do something smarter with the more concise operation.