Mark the roles of Ptr and FunPtr as R, not P!
authorRichard Eisenberg <eir@cis.upenn.edu>
Fri, 2 Aug 2013 14:52:02 +0000 (15:52 +0100)
committerRichard Eisenberg <eir@cis.upenn.edu>
Fri, 2 Aug 2013 14:52:02 +0000 (15:52 +0100)
GHC/Ptr.lhs

index 3a4f3e8..385a427 100644 (file)
@@ -1,6 +1,6 @@
 \begin{code}
 {-# LANGUAGE Unsafe #-}
-{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, RoleAnnotations #-}
 {-# OPTIONS_HADDOCK hide #-}
 
 -----------------------------------------------------------------------------
@@ -38,7 +38,7 @@ import Numeric          ( showHex )
 ------------------------------------------------------------------------
 -- Data pointers.
 
-data Ptr a = Ptr Addr# deriving (Eq, Ord)
+data Ptr a@R = Ptr Addr# deriving (Eq, Ord)
 -- ^ A value of type @'Ptr' a@ represents a pointer to an object, or an
 -- array of objects, which may be marshalled to or from Haskell values
 -- of type @a@.
@@ -82,7 +82,7 @@ minusPtr (Ptr a1) (Ptr a2) = I# (minusAddr# a1 a2)
 ------------------------------------------------------------------------
 -- Function pointers for the default calling convention.
 
-data FunPtr a = FunPtr Addr# deriving (Eq, Ord)
+data FunPtr a@R = FunPtr Addr# deriving (Eq, Ord)
 -- ^ A value of type @'FunPtr' a@ is a pointer to a function callable
 -- from foreign code.  The type @a@ will normally be a /foreign type/,
 -- a function type with zero or more arguments where