module UHC.Light.Compiler.Base.Strictness ( Strictness (..) ) where import UHC.Light.Compiler.Base.HsName import Control.Monad import UHC.Util.Binary import UHC.Util.Serialize {-# LINE 20 "src/ehc/Base/Strictness.chs" #-} data Strictness = Strictness_Strict | Strictness_NonStrict | Strictness_Var HsName deriving (Eq, Ord) instance Show Strictness where show Strictness_Strict = "strict" show Strictness_NonStrict = "nonStrict" show (Strictness_Var n) = "strictness:" ++ show n {-# LINE 38 "src/ehc/Base/Strictness.chs" #-} deriving instance Typeable Strictness {-# LINE 46 "src/ehc/Base/Strictness.chs" #-} instance Binary Strictness where put (Strictness_Strict ) = putWord8 0 put (Strictness_NonStrict ) = putWord8 1 put (Strictness_Var nm ) = putWord8 2 >> put nm get = do t <- getWord8 case t of 0 -> return Strictness_Strict 1 -> return Strictness_NonStrict 2 -> liftM Strictness_Var get instance Serialize Strictness where sput = sputShared sget = sgetShared sputNested = sputPlain sgetNested = sgetPlain