Richard In GHC.Ptr we see type role Ptr representational
data Ptr a = Ptr Addr# deriving (Eq, Ord) with no comments. Why is Ptr representational? In the same module we have castPtr, which unpacks and repacks a Ptr. If Ptr was phantom, we could use coerce. And that in turn would actually make a lot of code more efficient - there are lots of calls to castPtr. Simon
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs