Consider a function: f int -> int -> int being passed as a higher order function requiring fewer arguments. This fails as we flatten the lambda into a function with the same arity. Can we inspect the required type and only flatten "as much as needed"?
Consider a function:
f int -> int -> intbeing passed as a higher order function requiring fewer arguments. This fails as we flatten the lambda into a function with the same arity. Can we inspect the required type and only flatten "as much as needed"?