import IfaceSyn
import VarEnv
import InstEnv ( OverlapFlag(..) )
-import Packages ( PackageIdH(..) )
import Class ( DefMeth(..) )
import CostCentre
import StaticFlags ( opt_HiVersion, v_Build_tag )
mi_module = mod,
mi_boot = is_boot,
mi_mod_vers = mod_vers,
- mi_package = _, -- we ignore the package on output
mi_orphan = orphan,
mi_deps = deps,
mi_usages = usages,
rules <- {-# SCC "bin_rules" #-} lazyGet bh
rule_vers <- get bh
return (ModIface {
- mi_package = HomePackage, -- to be filled in properly later
mi_module = mod_name,
mi_boot = is_boot,
mi_mod_vers = mod_vers,
instance Binary Kind where
put_ bh LiftedTypeKind = putByte bh 0
put_ bh UnliftedTypeKind = putByte bh 1
- put_ bh OpenTypeKind = putByte bh 2
- put_ bh ArgTypeKind = putByte bh 3
- put_ bh UbxTupleKind = putByte bh 4
+ put_ bh UnboxedTypeKind = putByte bh 2
+ put_ bh OpenTypeKind = putByte bh 3
+ put_ bh ArgTypeKind = putByte bh 4
+ put_ bh UbxTupleKind = putByte bh 5
put_ bh (FunKind k1 k2) = do
- putByte bh 5
+ putByte bh 6
put_ bh k1
put_ bh k2
put_ bh (KindVar kv) = pprPanic "BinIface.put_: kind var" (ppr kv)
case h of
0 -> return LiftedTypeKind
1 -> return UnliftedTypeKind
- 2 -> return OpenTypeKind
- 3 -> return ArgTypeKind
- 4 -> return UbxTupleKind
+ 2 -> return UnboxedTypeKind
+ 3 -> return OpenTypeKind
+ 4 -> return ArgTypeKind
+ 5 -> return UbxTupleKind
_ -> do k1 <- get bh
k2 <- get bh
return (FunKind k1 k2)
put_ bh (HsStrictness ab) = do
putByte bh 1
put_ bh ab
- put_ bh (HsUnfold ac ad) = do
+ put_ bh (HsUnfold ad) = do
putByte bh 2
- put_ bh ac
put_ bh ad
- put_ bh HsNoCafRefs = do
+ put_ bh (HsInline ad) = do
putByte bh 3
- put_ bh (HsWorker ae af) = do
+ put_ bh ad
+ put_ bh HsNoCafRefs = do
putByte bh 4
+ put_ bh (HsWorker ae af) = do
+ putByte bh 5
put_ bh ae
put_ bh af
get bh = do
return (HsArity aa)
1 -> do ab <- get bh
return (HsStrictness ab)
- 2 -> do ac <- get bh
- ad <- get bh
- return (HsUnfold ac ad)
- 3 -> do return HsNoCafRefs
+ 2 -> do ad <- get bh
+ return (HsUnfold ad)
+ 3 -> do ad <- get bh
+ return (HsInline ad)
+ 4 -> do return HsNoCafRefs
_ -> do ae <- get bh
af <- get bh
return (HsWorker ae af)
put_ bh (IfaceCoerce ab) = do
putByte bh 1
put_ bh ab
- put_ bh IfaceInlineCall = do
- putByte bh 2
put_ bh IfaceInlineMe = do
putByte bh 3
put_ bh (IfaceCoreNote s) = do
return (IfaceSCC aa)
1 -> do ab <- get bh
return (IfaceCoerce ab)
- 2 -> do return IfaceInlineCall
3 -> do return IfaceInlineMe
_ -> do ac <- get bh
return (IfaceCoreNote ac)