Closed ivenmarquardt closed 3 years ago
The problem is caused by an invalid substitution of partially applied type constructors:
((b => a) => f<b> => r) => r
// is substituted to
((b => Number) => [] => r) => r
// ^^
// instead of [b]
The type validator restores f
's arity in Coyoneda<f, a>
correctly with 1, but somewhere along the way this information is lost.
see #350
The following valid program doesn't type check: