I'm not familiar with GHC internals but I have a couple questions about ConstraintKinds.
It says from GHC.Exts
that
data Constraint :: BOX
which is misleading because Constraint
is a kind of sort BOX
. This brings us to the first question: we can import and export kinds? How does that work?
Please correct me on this next part if I'm totally off. From trying out different imports and glancing around at the source on hackage, my guess is that GHC.Exts
imports Constraint
from GHC.Base
, who in turn, imports it from GHC.Prim
. But I do not see where it is defined in GHC.Prim
?