Do something sensible with unboxed types, even if just avoiding them. For instance, an Int literal 1 gets reified as appP (reifyEP I#) (reifyEP 1). With types shown, this sub-expression (reifyEP 1) becomes (reifyEP @ Int# 1) which is not well-kinded. (Similarly for the other reifyEP call.) I think an easy fix would be having reifyOf in Lambda.Reify only apply if the argument type has kind *.
Do something sensible with unboxed types, even if just avoiding them. For instance, an
Int
literal1
gets reified asappP (reifyEP I#) (reifyEP 1)
. With types shown, this sub-expression(reifyEP 1)
becomes(reifyEP @ Int# 1)
which is not well-kinded. (Similarly for the otherreifyEP
call.) I think an easy fix would be havingreifyOf
inLambda.Reify
only apply if the argument type has kind*
.