The Group constructor is redundant because (x) is equivalent to {x} call, and Group is only used for infix desugaring, after which it just gets in the way. This is a work in progress—currently, the compiler can fail to find the right instantiation of the definition generated by lifting the intermediate quotation. In the future, optimisations will be able to remove this unnecessary closure, but this issue needs to be fixed anyway.
Since a quotation is only ever used at a single type, we should be able to generate the correct instantiation immediately.
The
Group
constructor is redundant because(x)
is equivalent to{x} call
, andGroup
is only used for infix desugaring, after which it just gets in the way. This is a work in progress—currently, the compiler can fail to find the right instantiation of the definition generated by lifting the intermediate quotation. In the future, optimisations will be able to remove this unnecessary closure, but this issue needs to be fixed anyway.Since a quotation is only ever used at a single type, we should be able to generate the correct instantiation immediately.