Other modules should access this info through ClosureInfo.
\begin{code}
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
module SMRep (
-- Words and bytes
StgWord, StgHalfWord,
\begin{code}
data CgRep
= VoidArg -- Void
- | PtrArg -- Word-sized Ptr
+ | PtrArg -- Word-sized heap pointer, followed
+ -- by the garbage collector
| NonPtrArg -- Word-sized non-pointer
+ -- (including addresses not followed by GC)
| LongArg -- 64-bit non-pointer
| FloatArg -- 32-bit float
| DoubleArg -- 64-bit float
smRepClosureType (GenericRep _ _ _ ty) = Just ty
smRepClosureType BlackHoleRep = Nothing
-smRepClosureTypeInt :: SMRep -> Int
+smRepClosureTypeInt :: SMRep -> StgHalfWord
smRepClosureTypeInt (GenericRep False 1 0 Constr) = CONSTR_1_0
smRepClosureTypeInt (GenericRep False 0 1 Constr) = CONSTR_0_1
smRepClosureTypeInt (GenericRep False 2 0 Constr) = CONSTR_2_0
-- We export these ones
-rET_SMALL = (RET_SMALL :: Int)
-rET_BIG = (RET_BIG :: Int)
+rET_SMALL = (RET_SMALL :: StgHalfWord)
+rET_BIG = (RET_BIG :: StgHalfWord)
\end{code}