:type does not print the correct kinds for levity-polymorphic primops
> :set -fprint-explicit-foralls -fprint-explicit-runtime-reps -fprint-explicit-kinds
> :type mkWeak#
mkWeak#
:: forall a b c.
a
-> b
-> (State# RealWorld -> (# State# RealWorld, c #))
-> State# RealWorld
-> (# State# RealWorld, Weak# b #)
This is incorrect as mkWeak
is now levity-polymorphic in the variable a
. I thought this might be due to the primop wrappers we create for GHCi, yet I am still allowed to write:
> :kind Array# Int
Array# Int :: UnliftedType
= Array# Int
> :type mkWeak# (undefined :: Array# Int)