ghc-lib-parser-9.10.1.20250103: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Utils.Binary

Contents

- For writing instances
- Variable length encodings
- Fixed length encoding
- Lazy Binary I/O
- User data
- String table ("dictionary")
- Newtype wrappers

Synopsis

- data Bin (a :: k)
- class Binary a where
  - put_ :: BinHandle -> a -> IO ()
  - put :: BinHandle -> a -> IO (Bin a)
  - get :: BinHandle -> IO a
- data BinHandle
- type SymbolTable = Array Int Name
- type Dictionary = Array Int FastString
- data BinData = BinData Int BinArray
- dataHandle :: BinData -> IO BinHandle
- handleData :: BinHandle -> IO BinData
- unsafeUnpackBinBuffer :: ByteString -> IO BinHandle
- openBinMem :: Int -> IO BinHandle
- seekBin :: forall {k} (a :: k). BinHandle -> Bin a -> IO ()
- tellBin :: forall {k} (a :: k). BinHandle -> IO (Bin a)
- castBin :: forall {k1} {k2} (a :: k1) (b :: k2). Bin a -> Bin b
- withBinBuffer :: BinHandle -> (ByteString -> IO a) -> IO a
- foldGet :: Binary a => Word -> BinHandle -> b -> (Word -> a -> b -> IO b) -> IO b
- foldGet' :: Binary a => Word -> BinHandle -> b -> (Word -> a -> b -> IO b) -> IO b
- writeBinMem :: BinHandle -> FilePath -> IO ()
- readBinMem :: FilePath -> IO BinHandle
- readBinMemN :: Int -> FilePath -> IO (Maybe BinHandle)
- putAt :: Binary a => BinHandle -> Bin a -> a -> IO ()
- getAt :: Binary a => BinHandle -> Bin a -> IO a
- forwardPut :: BinHandle -> (b -> IO a) -> IO b -> IO (a, b)
- forwardPut_ :: BinHandle -> (b -> IO a) -> IO b -> IO ()
- forwardGet :: BinHandle -> IO a -> IO a
- putByte :: BinHandle -> Word8 -> IO ()
- getByte :: BinHandle -> IO Word8
- putByteString :: BinHandle -> ByteString -> IO ()
- getByteString :: BinHandle -> Int -> IO ByteString
- putULEB128 :: (Integral a, FiniteBits a) => BinHandle -> a -> IO ()
- getULEB128 :: (Integral a, FiniteBits a) => BinHandle -> IO a
- putSLEB128 :: (Integral a, Bits a) => BinHandle -> a -> IO ()
- getSLEB128 :: (Show a, Integral a, FiniteBits a) => BinHandle -> IO a
- newtype FixedLengthEncoding a = FixedLengthEncoding {
  - unFixedLength :: a
  }
- lazyGet :: Binary a => BinHandle -> IO a
- lazyPut :: Binary a => BinHandle -> a -> IO ()
- lazyGetMaybe :: Binary a => BinHandle -> IO (Maybe a)
- lazyPutMaybe :: Binary a => BinHandle -> Maybe a -> IO ()
- data UserData = UserData {
  - ud_get_name :: BinHandle -> IO Name
  - ud_get_fs :: BinHandle -> IO FastString
  - ud_put_nonbinding_name :: BinHandle -> Name -> IO ()
  - ud_put_binding_name :: BinHandle -> Name -> IO ()
  - ud_put_fs :: BinHandle -> FastString -> IO ()
  }
- getUserData :: BinHandle -> UserData
- setUserData :: BinHandle -> UserData -> BinHandle
- newReadState :: (BinHandle -> IO Name) -> (BinHandle -> IO FastString) -> UserData
- newWriteState :: (BinHandle -> Name -> IO ()) -> (BinHandle -> Name -> IO ()) -> (BinHandle -> FastString -> IO ()) -> UserData
- noUserData :: UserData
- putDictionary :: BinHandle -> Int -> UniqFM FastString (Int, FastString) -> IO ()
- getDictionary :: BinHandle -> IO Dictionary
- putFS :: BinHandle -> FastString -> IO ()
- data FSTable
- initFSTable :: BinHandle -> IO (BinHandle, FSTable, IO Int)
- getDictFastString :: Dictionary -> BinHandle -> IO FastString
- putDictFastString :: FSTable -> BinHandle -> FastString -> IO ()
- newtype BinSpan = BinSpan {
  - unBinSpan :: RealSrcSpan
  }
- newtype BinSrcSpan = BinSrcSpan {
  - unBinSrcSpan :: SrcSpan
  }
- newtype BinLocated a = BinLocated {
  - unBinLocated :: Located a
  }

# Documentation

data Bin (a :: k) #

#### Instances

Instances details

Bounded (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods minBound :: Bin a # maxBound :: Bin a #
Show (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods showsPrec :: Int -> Bin a -> ShowS # show :: Bin a -> String # showList :: [Bin a] -> ShowS #
Binary (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Bin a -> IO () # put :: BinHandle -> Bin a -> IO (Bin (Bin a)) # get :: BinHandle -> IO (Bin a) #
Eq (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods (==) :: Bin a -> Bin a -> Bool # (/=) :: Bin a -> Bin a -> Bool #
Ord (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods compare :: Bin a -> Bin a -> Ordering # (<) :: Bin a -> Bin a -> Bool # (<=) :: Bin a -> Bin a -> Bool # (>) :: Bin a -> Bin a -> Bool # (>=) :: Bin a -> Bin a -> Bool # max :: Bin a -> Bin a -> Bin a # min :: Bin a -> Bin a -> Bin a #

class Binary a where #

Do not rely on instance sizes for general types, we use variable length encoding for many of them.

Minimal complete definition

get

Methods

put_ :: BinHandle -> a -> IO () #

put :: BinHandle -> a -> IO (Bin a) #

get :: BinHandle -> IO a #

#### Instances

Instances details

Binary ByteString # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ByteString -> IO () # put :: BinHandle -> ByteString -> IO (Bin ByteString) # get :: BinHandle -> IO ByteString #
Binary SomeTypeRep # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> SomeTypeRep -> IO () # put :: BinHandle -> SomeTypeRep -> IO (Bin SomeTypeRep) # get :: BinHandle -> IO SomeTypeRep #
Binary Fingerprint # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Fingerprint -> IO () # put :: BinHandle -> Fingerprint -> IO (Bin Fingerprint) # get :: BinHandle -> IO Fingerprint #
Binary Int16 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int16 -> IO () # put :: BinHandle -> Int16 -> IO (Bin Int16) # get :: BinHandle -> IO Int16 #
Binary Int32 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int32 -> IO () # put :: BinHandle -> Int32 -> IO (Bin Int32) # get :: BinHandle -> IO Int32 #
Binary Int64 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int64 -> IO () # put :: BinHandle -> Int64 -> IO (Bin Int64) # get :: BinHandle -> IO Int64 #
Binary Int8 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int8 -> IO () # put :: BinHandle -> Int8 -> IO (Bin Int8) # get :: BinHandle -> IO Int8 #
Binary Word16 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word16 -> IO () # put :: BinHandle -> Word16 -> IO (Bin Word16) # get :: BinHandle -> IO Word16 #
Binary Word32 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word32 -> IO () # put :: BinHandle -> Word32 -> IO (Bin Word32) # get :: BinHandle -> IO Word32 #
Binary Word64 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word64 -> IO () # put :: BinHandle -> Word64 -> IO (Bin Word64) # get :: BinHandle -> IO Word64 #
Binary Word8 # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word8 -> IO () # put :: BinHandle -> Word8 -> IO (Bin Word8) # get :: BinHandle -> IO Word8 #
Binary IsOrphan # |
Instance details Defined in GHC.Core Methods put_ :: BinHandle -> IsOrphan -> IO () # put :: BinHandle -> IsOrphan -> IO (Bin IsOrphan) # get :: BinHandle -> IO IsOrphan #
Binary StrictnessMark # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> StrictnessMark -> IO () # put :: BinHandle -> StrictnessMark -> IO (Bin StrictnessMark) # get :: BinHandle -> IO StrictnessMark #
Binary CallerCcFilter # |
Instance details Defined in GHC.Core.Opt.CallerCC.Types Methods put_ :: BinHandle -> CallerCcFilter -> IO () # put :: BinHandle -> CallerCcFilter -> IO (Bin CallerCcFilter) # get :: BinHandle -> IO CallerCcFilter #
Binary NamePattern # |
Instance details Defined in GHC.Core.Opt.CallerCC.Types Methods put_ :: BinHandle -> NamePattern -> IO () # put :: BinHandle -> NamePattern -> IO (Bin NamePattern) # get :: BinHandle -> IO NamePattern #
Binary CoSel # |
Instance details Defined in GHC.Core.TyCo.Rep Methods put_ :: BinHandle -> CoSel -> IO () # put :: BinHandle -> CoSel -> IO (Bin CoSel) # get :: BinHandle -> IO CoSel #
Binary Injectivity # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> Injectivity -> IO () # put :: BinHandle -> Injectivity -> IO (Bin Injectivity) # get :: BinHandle -> IO Injectivity #
Binary PrimElemRep # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> PrimElemRep -> IO () # put :: BinHandle -> PrimElemRep -> IO (Bin PrimElemRep) # get :: BinHandle -> IO PrimElemRep #
Binary PrimRep # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> PrimRep -> IO () # put :: BinHandle -> PrimRep -> IO (Bin PrimRep) # get :: BinHandle -> IO PrimRep #
Binary TyConBndrVis # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> TyConBndrVis -> IO () # put :: BinHandle -> TyConBndrVis -> IO (Bin TyConBndrVis) # get :: BinHandle -> IO TyConBndrVis #
Binary FastString # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FastString -> IO () # put :: BinHandle -> FastString -> IO (Bin FastString) # get :: BinHandle -> IO FastString #
Binary LexicalFastString # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> LexicalFastString -> IO () # put :: BinHandle -> LexicalFastString -> IO (Bin LexicalFastString) # get :: BinHandle -> IO LexicalFastString #
Binary NonDetFastString # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> NonDetFastString -> IO () # put :: BinHandle -> NonDetFastString -> IO (Bin NonDetFastString) # get :: BinHandle -> IO NonDetFastString #
Binary Language # |
Instance details Defined in GHC.Driver.Flags Methods put_ :: BinHandle -> Language -> IO () # put :: BinHandle -> Language -> IO (Bin Language) # get :: BinHandle -> IO Language #
Binary DocStructureItem # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> DocStructureItem -> IO () # put :: BinHandle -> DocStructureItem -> IO (Bin DocStructureItem) # get :: BinHandle -> IO DocStructureItem #
Binary Docs # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> Docs -> IO () # put :: BinHandle -> Docs -> IO (Bin Docs) # get :: BinHandle -> IO Docs #
Binary HsDocString # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocString -> IO () # put :: BinHandle -> HsDocString -> IO (Bin HsDocString) # get :: BinHandle -> IO HsDocString #
Binary HsDocStringChunk # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringChunk -> IO () # put :: BinHandle -> HsDocStringChunk -> IO (Bin HsDocStringChunk) # get :: BinHandle -> IO HsDocStringChunk #
Binary HsDocStringDecorator # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringDecorator -> IO () # put :: BinHandle -> HsDocStringDecorator -> IO (Bin HsDocStringDecorator) # get :: BinHandle -> IO HsDocStringDecorator #
Binary ExtensibleFields # |
Instance details Defined in GHC.Iface.Ext.Fields Methods put_ :: BinHandle -> ExtensibleFields -> IO () # put :: BinHandle -> ExtensibleFields -> IO (Bin ExtensibleFields) # get :: BinHandle -> IO ExtensibleFields #
Binary IfGuidance # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfGuidance -> IO () # put :: BinHandle -> IfGuidance -> IO (Bin IfGuidance) # get :: BinHandle -> IO IfGuidance #
Binary IfaceAT # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAT -> IO () # put :: BinHandle -> IfaceAT -> IO (Bin IfaceAT) # get :: BinHandle -> IO IfaceAT #
Binary IfaceAlt # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAlt -> IO () # put :: BinHandle -> IfaceAlt -> IO (Bin IfaceAlt) # get :: BinHandle -> IO IfaceAlt #
Binary IfaceAnnotation # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAnnotation -> IO () # put :: BinHandle -> IfaceAnnotation -> IO (Bin IfaceAnnotation) # get :: BinHandle -> IO IfaceAnnotation #
Binary IfaceAxBranch # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAxBranch -> IO () # put :: BinHandle -> IfaceAxBranch -> IO (Bin IfaceAxBranch) # get :: BinHandle -> IO IfaceAxBranch #
Binary IfaceBang # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBang -> IO () # put :: BinHandle -> IfaceBang -> IO (Bin IfaceBang) # get :: BinHandle -> IO IfaceBang #
Binary IfaceBooleanFormula # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBooleanFormula -> IO () # put :: BinHandle -> IfaceBooleanFormula -> IO (Bin IfaceBooleanFormula) # get :: BinHandle -> IO IfaceBooleanFormula #
Binary IfaceClassOp # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceClassOp -> IO () # put :: BinHandle -> IfaceClassOp -> IO (Bin IfaceClassOp) # get :: BinHandle -> IO IfaceClassOp #
Binary IfaceClsInst # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceClsInst -> IO () # put :: BinHandle -> IfaceClsInst -> IO (Bin IfaceClsInst) # get :: BinHandle -> IO IfaceClsInst #
Binary IfaceCompleteMatch # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceCompleteMatch -> IO () # put :: BinHandle -> IfaceCompleteMatch -> IO (Bin IfaceCompleteMatch) # get :: BinHandle -> IO IfaceCompleteMatch #
Binary IfaceConAlt # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConAlt -> IO () # put :: BinHandle -> IfaceConAlt -> IO (Bin IfaceConAlt) # get :: BinHandle -> IO IfaceConAlt #
Binary IfaceConDecl # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConDecl -> IO () # put :: BinHandle -> IfaceConDecl -> IO (Bin IfaceConDecl) # get :: BinHandle -> IO IfaceConDecl #
Binary IfaceConDecls # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConDecls -> IO () # put :: BinHandle -> IfaceConDecls -> IO (Bin IfaceConDecls) # get :: BinHandle -> IO IfaceConDecls #
Binary IfaceDecl # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceDecl -> IO () # put :: BinHandle -> IfaceDecl -> IO (Bin IfaceDecl) # get :: BinHandle -> IO IfaceDecl #
Binary IfaceExpr # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceExpr -> IO () # put :: BinHandle -> IfaceExpr -> IO (Bin IfaceExpr) # get :: BinHandle -> IO IfaceExpr #
Binary IfaceFamInst # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceFamInst -> IO () # put :: BinHandle -> IfaceFamInst -> IO (Bin IfaceFamInst) # get :: BinHandle -> IO IfaceFamInst #
Binary IfaceFamTyConFlav # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceFamTyConFlav -> IO () # put :: BinHandle -> IfaceFamTyConFlav -> IO (Bin IfaceFamTyConFlav) # get :: BinHandle -> IO IfaceFamTyConFlav #
Binary IfaceIdDetails # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceIdDetails -> IO () # put :: BinHandle -> IfaceIdDetails -> IO (Bin IfaceIdDetails) # get :: BinHandle -> IO IfaceIdDetails #
Binary IfaceInfoItem # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceInfoItem -> IO () # put :: BinHandle -> IfaceInfoItem -> IO (Bin IfaceInfoItem) # get :: BinHandle -> IO IfaceInfoItem #
Binary IfaceLFInfo # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceLFInfo -> IO () # put :: BinHandle -> IfaceLFInfo -> IO (Bin IfaceLFInfo) # get :: BinHandle -> IO IfaceLFInfo #
Binary IfaceLetBndr # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceLetBndr -> IO () # put :: BinHandle -> IfaceLetBndr -> IO (Bin IfaceLetBndr) # get :: BinHandle -> IO IfaceLetBndr #
Binary IfaceMaybeRhs # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceMaybeRhs -> IO () # put :: BinHandle -> IfaceMaybeRhs -> IO (Bin IfaceMaybeRhs) # get :: BinHandle -> IO IfaceMaybeRhs #
Binary IfaceRule # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceRule -> IO () # put :: BinHandle -> IfaceRule -> IO (Bin IfaceRule) # get :: BinHandle -> IO IfaceRule #
Binary IfaceSrcBang # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceSrcBang -> IO () # put :: BinHandle -> IfaceSrcBang -> IO (Bin IfaceSrcBang) # get :: BinHandle -> IO IfaceSrcBang #
Binary IfaceStringLiteral # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceStringLiteral -> IO () # put :: BinHandle -> IfaceStringLiteral -> IO (Bin IfaceStringLiteral) # get :: BinHandle -> IO IfaceStringLiteral #
Binary IfaceTickish # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTickish -> IO () # put :: BinHandle -> IfaceTickish -> IO (Bin IfaceTickish) # get :: BinHandle -> IO IfaceTickish #
Binary IfaceTopBndrInfo # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTopBndrInfo -> IO () # put :: BinHandle -> IfaceTopBndrInfo -> IO (Bin IfaceTopBndrInfo) # get :: BinHandle -> IO IfaceTopBndrInfo #
Binary IfaceTyConParent # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTyConParent -> IO () # put :: BinHandle -> IfaceTyConParent -> IO (Bin IfaceTyConParent) # get :: BinHandle -> IO IfaceTyConParent #
Binary IfaceUnfolding # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceUnfolding -> IO () # put :: BinHandle -> IfaceUnfolding -> IO (Bin IfaceUnfolding) # get :: BinHandle -> IO IfaceUnfolding #
Binary IfaceWarningTxt # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceWarningTxt -> IO () # put :: BinHandle -> IfaceWarningTxt -> IO (Bin IfaceWarningTxt) # get :: BinHandle -> IO IfaceWarningTxt #
Binary IfaceWarnings # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceWarnings -> IO () # put :: BinHandle -> IfaceWarnings -> IO (Bin IfaceWarnings) # get :: BinHandle -> IO IfaceWarnings #
Binary IfaceAppArgs # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceAppArgs -> IO () # put :: BinHandle -> IfaceAppArgs -> IO (Bin IfaceAppArgs) # get :: BinHandle -> IO IfaceAppArgs #
Binary IfaceBndr # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceBndr -> IO () # put :: BinHandle -> IfaceBndr -> IO (Bin IfaceBndr) # get :: BinHandle -> IO IfaceBndr #
Binary IfaceCoercion # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceCoercion -> IO () # put :: BinHandle -> IfaceCoercion -> IO (Bin IfaceCoercion) # get :: BinHandle -> IO IfaceCoercion #
Binary IfaceMCoercion # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceMCoercion -> IO () # put :: BinHandle -> IfaceMCoercion -> IO (Bin IfaceMCoercion) # get :: BinHandle -> IO IfaceMCoercion #
Binary IfaceOneShot # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceOneShot -> IO () # put :: BinHandle -> IfaceOneShot -> IO (Bin IfaceOneShot) # get :: BinHandle -> IO IfaceOneShot #
Binary IfaceTyCon # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyCon -> IO () # put :: BinHandle -> IfaceTyCon -> IO (Bin IfaceTyCon) # get :: BinHandle -> IO IfaceTyCon #
Binary IfaceTyConInfo # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyConInfo -> IO () # put :: BinHandle -> IfaceTyConInfo -> IO (Bin IfaceTyConInfo) # get :: BinHandle -> IO IfaceTyConInfo #
Binary IfaceTyConSort # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyConSort -> IO () # put :: BinHandle -> IfaceTyConSort -> IO (Bin IfaceTyConSort) # get :: BinHandle -> IO IfaceTyConSort #
Binary IfaceTyLit # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyLit -> IO () # put :: BinHandle -> IfaceTyLit -> IO (Bin IfaceTyLit) # get :: BinHandle -> IO IfaceTyLit #
Binary IfaceType # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceType -> IO () # put :: BinHandle -> IfaceType -> IO (Bin IfaceType) # get :: BinHandle -> IO IfaceType #
Binary IfaceUnivCoProv # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceUnivCoProv -> IO () # put :: BinHandle -> IfaceUnivCoProv -> IO (Bin IfaceUnivCoProv) # get :: BinHandle -> IO IfaceUnivCoProv #
Binary Ident # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> Ident -> IO () # put :: BinHandle -> Ident -> IO (Bin Ident) # get :: BinHandle -> IO Ident #
Binary AOp # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> AOp -> IO () # put :: BinHandle -> AOp -> IO (Bin AOp) # get :: BinHandle -> IO AOp #
Binary JExpr # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JExpr -> IO () # put :: BinHandle -> JExpr -> IO (Bin JExpr) # get :: BinHandle -> IO JExpr #
Binary JStat # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JStat -> IO () # put :: BinHandle -> JStat -> IO (Bin JStat) # get :: BinHandle -> IO JStat #
Binary JVal # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JVal -> IO () # put :: BinHandle -> JVal -> IO (Bin JVal) # get :: BinHandle -> IO JVal #
Binary Op # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> Op -> IO () # put :: BinHandle -> Op -> IO (Bin Op) # get :: BinHandle -> IO Op #
Binary UOp # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> UOp -> IO () # put :: BinHandle -> UOp -> IO (Bin UOp) # get :: BinHandle -> IO UOp #
Binary Serialized # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> Serialized -> IO () # put :: BinHandle -> Serialized -> IO (Bin Serialized) # get :: BinHandle -> IO Serialized #
Binary TagInfo # |
Instance details Defined in GHC.Stg.InferTags.TagSig Methods put_ :: BinHandle -> TagInfo -> IO () # put :: BinHandle -> TagInfo -> IO (Bin TagInfo) # get :: BinHandle -> IO TagInfo #
Binary TagSig # |
Instance details Defined in GHC.Stg.InferTags.TagSig Methods put_ :: BinHandle -> TagSig -> IO () # put :: BinHandle -> TagSig -> IO (Bin TagSig) # get :: BinHandle -> IO TagSig #
Binary BlockDeps # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> BlockDeps -> IO () # put :: BinHandle -> BlockDeps -> IO (Bin BlockDeps) # get :: BinHandle -> IO BlockDeps #
Binary BlockInfo # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> BlockInfo -> IO () # put :: BinHandle -> BlockInfo -> IO (Bin BlockInfo) # get :: BinHandle -> IO BlockInfo #
Binary ExportedFun # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ExportedFun -> IO () # put :: BinHandle -> ExportedFun -> IO (Bin ExportedFun) # get :: BinHandle -> IO ExportedFun #
Binary IndexEntry # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> IndexEntry -> IO () # put :: BinHandle -> IndexEntry -> IO (Bin IndexEntry) # get :: BinHandle -> IO IndexEntry #
Binary JSOptions # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSOptions -> IO () # put :: BinHandle -> JSOptions -> IO (Bin JSOptions) # get :: BinHandle -> IO JSOptions #
Binary CILayout # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CILayout -> IO () # put :: BinHandle -> CILayout -> IO (Bin CILayout) # get :: BinHandle -> IO CILayout #
Binary CIRegs # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIRegs -> IO () # put :: BinHandle -> CIRegs -> IO (Bin CIRegs) # get :: BinHandle -> IO CIRegs #
Binary CIStatic # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIStatic -> IO () # put :: BinHandle -> CIStatic -> IO (Bin CIStatic) # get :: BinHandle -> IO CIStatic #
Binary CIType # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIType -> IO () # put :: BinHandle -> CIType -> IO (Bin CIType) # get :: BinHandle -> IO CIType #
Binary ClosureInfo # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ClosureInfo -> IO () # put :: BinHandle -> ClosureInfo -> IO (Bin ClosureInfo) # get :: BinHandle -> IO ClosureInfo #
Binary ExpFun # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ExpFun -> IO () # put :: BinHandle -> ExpFun -> IO (Bin ExpFun) # get :: BinHandle -> IO ExpFun #
Binary ForeignJSRef # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ForeignJSRef -> IO () # put :: BinHandle -> ForeignJSRef -> IO (Bin ForeignJSRef) # get :: BinHandle -> IO ForeignJSRef #
Binary JSFFIType # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSFFIType -> IO () # put :: BinHandle -> JSFFIType -> IO (Bin JSFFIType) # get :: BinHandle -> IO JSFFIType #
Binary JSRep # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSRep -> IO () # put :: BinHandle -> JSRep -> IO (Bin JSRep) # get :: BinHandle -> IO JSRep #
Binary StaticArg # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticArg -> IO () # put :: BinHandle -> StaticArg -> IO (Bin StaticArg) # get :: BinHandle -> IO StaticArg #
Binary StaticInfo # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticInfo -> IO () # put :: BinHandle -> StaticInfo -> IO (Bin StaticInfo) # get :: BinHandle -> IO StaticInfo #
Binary StaticLit # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticLit -> IO () # put :: BinHandle -> StaticLit -> IO (Bin StaticLit) # get :: BinHandle -> IO StaticLit #
Binary StaticUnboxed # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticUnboxed -> IO () # put :: BinHandle -> StaticUnboxed -> IO (Bin StaticUnboxed) # get :: BinHandle -> IO StaticUnboxed #
Binary StaticVal # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticVal -> IO () # put :: BinHandle -> StaticVal -> IO (Bin StaticVal) # get :: BinHandle -> IO StaticVal #
Binary AvailInfo # |
Instance details Defined in GHC.Types.Avail Methods put_ :: BinHandle -> AvailInfo -> IO () # put :: BinHandle -> AvailInfo -> IO (Bin AvailInfo) # get :: BinHandle -> IO AvailInfo #
Binary Activation # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Activation -> IO () # put :: BinHandle -> Activation -> IO (Bin Activation) # get :: BinHandle -> IO Activation #
Binary CbvMark # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> CbvMark -> IO () # put :: BinHandle -> CbvMark -> IO (Bin CbvMark) # get :: BinHandle -> IO CbvMark #
Binary FunctionOrData # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> FunctionOrData -> IO () # put :: BinHandle -> FunctionOrData -> IO (Bin FunctionOrData) # get :: BinHandle -> IO FunctionOrData #
Binary InlinePragma # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> InlinePragma -> IO () # put :: BinHandle -> InlinePragma -> IO (Bin InlinePragma) # get :: BinHandle -> IO InlinePragma #
Binary InlineSpec # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> InlineSpec -> IO () # put :: BinHandle -> InlineSpec -> IO (Bin InlineSpec) # get :: BinHandle -> IO InlineSpec #
Binary LeftOrRight # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> LeftOrRight -> IO () # put :: BinHandle -> LeftOrRight -> IO (Bin LeftOrRight) # get :: BinHandle -> IO LeftOrRight #
Binary Levity # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Levity -> IO () # put :: BinHandle -> Levity -> IO (Bin Levity) # get :: BinHandle -> IO Levity #
Binary OverlapFlag # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> OverlapFlag -> IO () # put :: BinHandle -> OverlapFlag -> IO (Bin OverlapFlag) # get :: BinHandle -> IO OverlapFlag #
Binary OverlapMode # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> OverlapMode -> IO () # put :: BinHandle -> OverlapMode -> IO (Bin OverlapMode) # get :: BinHandle -> IO OverlapMode #
Binary RecFlag # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> RecFlag -> IO () # put :: BinHandle -> RecFlag -> IO (Bin RecFlag) # get :: BinHandle -> IO RecFlag #
Binary RuleMatchInfo # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> RuleMatchInfo -> IO () # put :: BinHandle -> RuleMatchInfo -> IO (Bin RuleMatchInfo) # get :: BinHandle -> IO RuleMatchInfo #
Binary TupleSort # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> TupleSort -> IO () # put :: BinHandle -> TupleSort -> IO (Bin TupleSort) # get :: BinHandle -> IO TupleSort #
Binary UnfoldingSource # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> UnfoldingSource -> IO () # put :: BinHandle -> UnfoldingSource -> IO (Bin UnfoldingSource) # get :: BinHandle -> IO UnfoldingSource #
Binary CCFlavour # |
Instance details Defined in GHC.Types.CostCentre Methods put_ :: BinHandle -> CCFlavour -> IO () # put :: BinHandle -> CCFlavour -> IO (Bin CCFlavour) # get :: BinHandle -> IO CCFlavour #
Binary CostCentre # |
Instance details Defined in GHC.Types.CostCentre Methods put_ :: BinHandle -> CostCentre -> IO () # put :: BinHandle -> CostCentre -> IO (Bin CostCentre) # get :: BinHandle -> IO CostCentre #
Binary CostCentreIndex # |
Instance details Defined in GHC.Types.CostCentre.State Methods put_ :: BinHandle -> CostCentreIndex -> IO () # put :: BinHandle -> CostCentreIndex -> IO (Bin CostCentreIndex) # get :: BinHandle -> IO CostCentreIndex #
Binary Cpr # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> Cpr -> IO () # put :: BinHandle -> Cpr -> IO (Bin Cpr) # get :: BinHandle -> IO Cpr #
Binary CprSig # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> CprSig -> IO () # put :: BinHandle -> CprSig -> IO (Bin CprSig) # get :: BinHandle -> IO CprSig #
Binary CprType # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> CprType -> IO () # put :: BinHandle -> CprType -> IO (Bin CprType) # get :: BinHandle -> IO CprType #
Binary Card # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Card -> IO () # put :: BinHandle -> Card -> IO (Bin Card) # get :: BinHandle -> IO Card #
Binary Demand # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Demand -> IO () # put :: BinHandle -> Demand -> IO (Bin Demand) # get :: BinHandle -> IO Demand #
Binary Divergence # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Divergence -> IO () # put :: BinHandle -> Divergence -> IO (Bin Divergence) # get :: BinHandle -> IO Divergence #
Binary DmdEnv # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdEnv -> IO () # put :: BinHandle -> DmdEnv -> IO (Bin DmdEnv) # get :: BinHandle -> IO DmdEnv #
Binary DmdSig # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdSig -> IO () # put :: BinHandle -> DmdSig -> IO (Bin DmdSig) # get :: BinHandle -> IO DmdSig #
Binary DmdType # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdType -> IO () # put :: BinHandle -> DmdType -> IO (Bin DmdType) # get :: BinHandle -> IO DmdType #
Binary SubDemand # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> SubDemand -> IO () # put :: BinHandle -> SubDemand -> IO (Bin SubDemand) # get :: BinHandle -> IO SubDemand #
Binary DuplicateRecordFields # |
Instance details Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> DuplicateRecordFields -> IO () # put :: BinHandle -> DuplicateRecordFields -> IO (Bin DuplicateRecordFields) # get :: BinHandle -> IO DuplicateRecordFields #
Binary Name => Binary FieldLabel # | We need the `Binary Name` constraint here even though there is an instance defined in GHC.Types.Name, because the we have a SOURCE import, so the instance is not in scope. And the instance cannot be added to Name.hs-boot because GHC.Utils.Binary itself depends on GHC.Types.Name.
Instance details Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> FieldLabel -> IO () # put :: BinHandle -> FieldLabel -> IO (Bin FieldLabel) # get :: BinHandle -> IO FieldLabel #
Binary FieldSelectors # |
Instance details Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> FieldSelectors -> IO () # put :: BinHandle -> FieldSelectors -> IO (Bin FieldSelectors) # get :: BinHandle -> IO FieldSelectors #
Binary Fixity # |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> Fixity -> IO () # put :: BinHandle -> Fixity -> IO (Bin Fixity) # get :: BinHandle -> IO Fixity #
Binary FixityDirection # |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> FixityDirection -> IO () # put :: BinHandle -> FixityDirection -> IO (Bin FixityDirection) # get :: BinHandle -> IO FixityDirection #
Binary CCallConv # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallConv -> IO () # put :: BinHandle -> CCallConv -> IO (Bin CCallConv) # get :: BinHandle -> IO CCallConv #
Binary CCallSpec # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallSpec -> IO () # put :: BinHandle -> CCallSpec -> IO (Bin CCallSpec) # get :: BinHandle -> IO CCallSpec #
Binary CCallTarget # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallTarget -> IO () # put :: BinHandle -> CCallTarget -> IO (Bin CCallTarget) # get :: BinHandle -> IO CCallTarget #
Binary CExportSpec # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CExportSpec -> IO () # put :: BinHandle -> CExportSpec -> IO (Bin CExportSpec) # get :: BinHandle -> IO CExportSpec #
Binary CType # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CType -> IO () # put :: BinHandle -> CType -> IO (Bin CType) # get :: BinHandle -> IO CType #
Binary ForeignCall # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> ForeignCall -> IO () # put :: BinHandle -> ForeignCall -> IO (Bin ForeignCall) # get :: BinHandle -> IO ForeignCall #
Binary Header # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> Header -> IO () # put :: BinHandle -> Header -> IO (Bin Header) # get :: BinHandle -> IO Header #
Binary Safety # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> Safety -> IO () # put :: BinHandle -> Safety -> IO (Bin Safety) # get :: BinHandle -> IO Safety #
Binary LitNumType # |
Instance details Defined in GHC.Types.Literal Methods put_ :: BinHandle -> LitNumType -> IO () # put :: BinHandle -> LitNumType -> IO (Bin LitNumType) # get :: BinHandle -> IO LitNumType #
Binary Literal # |
Instance details Defined in GHC.Types.Literal Methods put_ :: BinHandle -> Literal -> IO () # put :: BinHandle -> Literal -> IO (Bin Literal) # get :: BinHandle -> IO Literal #
Binary Name # | Assumes that the `Name` is a non-binding one. See `putIfaceTopBndr` and `getIfaceTopBndr` for serializing binding `Name`s. See `UserData` for the rationale for this distinction.
Instance details Defined in GHC.Types.Name Methods put_ :: BinHandle -> Name -> IO () # put :: BinHandle -> Name -> IO (Bin Name) # get :: BinHandle -> IO Name #
Binary NameSpace # |
Instance details Defined in GHC.Types.Name.Occurrence Methods put_ :: BinHandle -> NameSpace -> IO () # put :: BinHandle -> NameSpace -> IO (Bin NameSpace) # get :: BinHandle -> IO NameSpace #
Binary OccName # |
Instance details Defined in GHC.Types.Name.Occurrence Methods put_ :: BinHandle -> OccName -> IO () # put :: BinHandle -> OccName -> IO (Bin OccName) # get :: BinHandle -> IO OccName #
Binary IfaceTrustInfo # |
Instance details Defined in GHC.Types.SafeHaskell Methods put_ :: BinHandle -> IfaceTrustInfo -> IO () # put :: BinHandle -> IfaceTrustInfo -> IO (Bin IfaceTrustInfo) # get :: BinHandle -> IO IfaceTrustInfo #
Binary SaneDouble # |
Instance details Defined in GHC.Types.SaneDouble Methods put_ :: BinHandle -> SaneDouble -> IO () # put :: BinHandle -> SaneDouble -> IO (Bin SaneDouble) # get :: BinHandle -> IO SaneDouble #
Binary HscSource # |
Instance details Defined in GHC.Types.SourceFile Methods put_ :: BinHandle -> HscSource -> IO () # put :: BinHandle -> HscSource -> IO (Bin HscSource) # get :: BinHandle -> IO HscSource #
Binary SourceText # |
Instance details Defined in GHC.Types.SourceText Methods put_ :: BinHandle -> SourceText -> IO () # put :: BinHandle -> SourceText -> IO (Bin SourceText) # get :: BinHandle -> IO SourceText #
Binary UnhelpfulSpanReason # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> UnhelpfulSpanReason -> IO () # put :: BinHandle -> UnhelpfulSpanReason -> IO (Bin UnhelpfulSpanReason) # get :: BinHandle -> IO UnhelpfulSpanReason #
Binary ForAllTyFlag # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> ForAllTyFlag -> IO () # put :: BinHandle -> ForAllTyFlag -> IO (Bin ForAllTyFlag) # get :: BinHandle -> IO ForAllTyFlag #
Binary FunTyFlag # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> FunTyFlag -> IO () # put :: BinHandle -> FunTyFlag -> IO (Bin FunTyFlag) # get :: BinHandle -> IO FunTyFlag #
Binary Specificity # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> Specificity -> IO () # put :: BinHandle -> Specificity -> IO (Bin Specificity) # get :: BinHandle -> IO Specificity #
Binary Dependencies # |
Instance details Defined in GHC.Unit.Module.Deps Methods put_ :: BinHandle -> Dependencies -> IO () # put :: BinHandle -> Dependencies -> IO (Bin Dependencies) # get :: BinHandle -> IO Dependencies #
Binary Usage # |
Instance details Defined in GHC.Unit.Module.Deps Methods put_ :: BinHandle -> Usage -> IO () # put :: BinHandle -> Usage -> IO (Bin Usage) # get :: BinHandle -> IO Usage #
Binary ModIface # |
Instance details Defined in GHC.Unit.Module.ModIface Methods put_ :: BinHandle -> ModIface -> IO () # put :: BinHandle -> ModIface -> IO (Bin ModIface) # get :: BinHandle -> IO ModIface #
Binary WarningCategory # |
Instance details Defined in GHC.Unit.Module.Warnings Methods put_ :: BinHandle -> WarningCategory -> IO () # put :: BinHandle -> WarningCategory -> IO (Bin WarningCategory) # get :: BinHandle -> IO WarningCategory #
Binary InstantiatedUnit # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> InstantiatedUnit -> IO () # put :: BinHandle -> InstantiatedUnit -> IO (Bin InstantiatedUnit) # get :: BinHandle -> IO InstantiatedUnit #
Binary Unit # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> Unit -> IO () # put :: BinHandle -> Unit -> IO (Bin Unit) # get :: BinHandle -> IO Unit #
Binary UnitId # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> UnitId -> IO () # put :: BinHandle -> UnitId -> IO (Bin UnitId) # get :: BinHandle -> IO UnitId #
Binary BinData # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinData -> IO () # put :: BinHandle -> BinData -> IO (Bin BinData) # get :: BinHandle -> IO BinData #
Binary BinSpan # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSpan -> IO () # put :: BinHandle -> BinSpan -> IO (Bin BinSpan) # get :: BinHandle -> IO BinSpan #
Binary BinSrcSpan # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSrcSpan -> IO () # put :: BinHandle -> BinSrcSpan -> IO (Bin BinSrcSpan) # get :: BinHandle -> IO BinSrcSpan #
Binary JoinPointHood # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> JoinPointHood -> IO () # put :: BinHandle -> JoinPointHood -> IO (Bin JoinPointHood) # get :: BinHandle -> IO JoinPointHood #
Binary Boxity # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Boxity -> IO () # put :: BinHandle -> Boxity -> IO (Bin Boxity) # get :: BinHandle -> IO Boxity #
Binary Role # |
Instance details Defined in GHC.Core.Coercion.Axiom Methods put_ :: BinHandle -> Role -> IO () # put :: BinHandle -> Role -> IO (Bin Role) # get :: BinHandle -> IO Role #
Binary SrcStrictness # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcStrictness -> IO () # put :: BinHandle -> SrcStrictness -> IO (Bin SrcStrictness) # get :: BinHandle -> IO SrcStrictness #
Binary SrcUnpackedness # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcUnpackedness -> IO () # put :: BinHandle -> SrcUnpackedness -> IO (Bin SrcUnpackedness) # get :: BinHandle -> IO SrcUnpackedness #
Binary IsBootInterface # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> IsBootInterface -> IO () # put :: BinHandle -> IsBootInterface -> IO (Bin IsBootInterface) # get :: BinHandle -> IO IsBootInterface #
Binary ModuleName # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ModuleName -> IO () # put :: BinHandle -> ModuleName -> IO (Bin ModuleName) # get :: BinHandle -> IO ModuleName #
Binary PromotionFlag # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> PromotionFlag -> IO () # put :: BinHandle -> PromotionFlag -> IO (Bin PromotionFlag) # get :: BinHandle -> IO PromotionFlag #
Binary KindRep # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> KindRep -> IO () # put :: BinHandle -> KindRep -> IO (Bin KindRep) # get :: BinHandle -> IO KindRep #
Binary TyCon # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TyCon -> IO () # put :: BinHandle -> TyCon -> IO (Bin TyCon) # get :: BinHandle -> IO TyCon #
Binary TypeLitSort # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TypeLitSort -> IO () # put :: BinHandle -> TypeLitSort -> IO (Bin TypeLitSort) # get :: BinHandle -> IO TypeLitSort #
Binary Day # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Day -> IO () # put :: BinHandle -> Day -> IO (Bin Day) # get :: BinHandle -> IO Day #
Binary DiffTime # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> DiffTime -> IO () # put :: BinHandle -> DiffTime -> IO (Bin DiffTime) # get :: BinHandle -> IO DiffTime #
Binary UTCTime # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> UTCTime -> IO () # put :: BinHandle -> UTCTime -> IO (Bin UTCTime) # get :: BinHandle -> IO UTCTime #
Binary Integer # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Integer -> IO () # put :: BinHandle -> Integer -> IO (Bin Integer) # get :: BinHandle -> IO Integer #
Binary () # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> () -> IO () # put :: BinHandle -> () -> IO (Bin ()) # get :: BinHandle -> IO () #
Binary Bool # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Bool -> IO () # put :: BinHandle -> Bool -> IO (Bin Bool) # get :: BinHandle -> IO Bool #
Binary Char # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Char -> IO () # put :: BinHandle -> Char -> IO (Bin Char) # get :: BinHandle -> IO Char #
Binary Int # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int -> IO () # put :: BinHandle -> Int -> IO (Bin Int) # get :: BinHandle -> IO Int #
Binary RuntimeRep # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> RuntimeRep -> IO () # put :: BinHandle -> RuntimeRep -> IO (Bin RuntimeRep) # get :: BinHandle -> IO RuntimeRep #
Binary VecCount # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> VecCount -> IO () # put :: BinHandle -> VecCount -> IO (Bin VecCount) # get :: BinHandle -> IO VecCount #
Binary VecElem # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> VecElem -> IO () # put :: BinHandle -> VecElem -> IO (Bin VecElem) # get :: BinHandle -> IO VecElem #
Binary v => Binary (IntMap v) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> IntMap v -> IO () # put :: BinHandle -> IntMap v -> IO (Bin (IntMap v)) # get :: BinHandle -> IO (IntMap v) #
(Binary a, Ord a) => Binary (Set a) # | This instance doesn't rely on the determinism of the keys' `Ord` instance, so it works e.g. for `Name`s too.
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Set a -> IO () # put :: BinHandle -> Set a -> IO (Bin (Set a)) # get :: BinHandle -> IO (Set a) #
Binary a => Binary (NonEmpty a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> NonEmpty a -> IO () # put :: BinHandle -> NonEmpty a -> IO (Bin (NonEmpty a)) # get :: BinHandle -> IO (NonEmpty a) #
Binary a => Binary (Ratio a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Ratio a -> IO () # put :: BinHandle -> Ratio a -> IO (Bin (Ratio a)) # get :: BinHandle -> IO (Ratio a) #
Binary a => Binary (Maybe a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Maybe a -> IO () # put :: BinHandle -> Maybe a -> IO (Bin (Maybe a)) # get :: BinHandle -> IO (Maybe a) #
Binary name => Binary (AnnTarget name) # |
Instance details Defined in GHC.Types.Annotations Methods put_ :: BinHandle -> AnnTarget name -> IO () # put :: BinHandle -> AnnTarget name -> IO (Bin (AnnTarget name)) # get :: BinHandle -> IO (AnnTarget name) #
Binary (DefMethSpec IfaceType) # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> DefMethSpec IfaceType -> IO () # put :: BinHandle -> DefMethSpec IfaceType -> IO (Bin (DefMethSpec IfaceType)) # get :: BinHandle -> IO (DefMethSpec IfaceType) #
Binary unit => Binary (Definite unit) # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> Definite unit -> IO () # put :: BinHandle -> Definite unit -> IO (Bin (Definite unit)) # get :: BinHandle -> IO (Definite unit) #
Binary a => Binary (GenModule a) # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> GenModule a -> IO () # put :: BinHandle -> GenModule a -> IO (Bin (GenModule a)) # get :: BinHandle -> IO (GenModule a) #
Binary a => Binary (GenWithIsBoot a) # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> GenWithIsBoot a -> IO () # put :: BinHandle -> GenWithIsBoot a -> IO (Bin (GenWithIsBoot a)) # get :: BinHandle -> IO (GenWithIsBoot a) #
Binary a => Binary (BinLocated a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinLocated a -> IO () # put :: BinHandle -> BinLocated a -> IO (Bin (BinLocated a)) # get :: BinHandle -> IO (BinLocated a) #
Binary (FixedLengthEncoding Word16) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word16 -> IO () # put :: BinHandle -> FixedLengthEncoding Word16 -> IO (Bin (FixedLengthEncoding Word16)) # get :: BinHandle -> IO (FixedLengthEncoding Word16) #
Binary (FixedLengthEncoding Word32) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word32 -> IO () # put :: BinHandle -> FixedLengthEncoding Word32 -> IO (Bin (FixedLengthEncoding Word32)) # get :: BinHandle -> IO (FixedLengthEncoding Word32) #
Binary (FixedLengthEncoding Word64) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word64 -> IO () # put :: BinHandle -> FixedLengthEncoding Word64 -> IO (Bin (FixedLengthEncoding Word64)) # get :: BinHandle -> IO (FixedLengthEncoding Word64) #
Binary (FixedLengthEncoding Word8) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word8 -> IO () # put :: BinHandle -> FixedLengthEncoding Word8 -> IO (Bin (FixedLengthEncoding Word8)) # get :: BinHandle -> IO (FixedLengthEncoding Word8) #
Binary a => Binary (Maybe a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Maybe a -> IO () # put :: BinHandle -> Maybe a -> IO (Bin (Maybe a)) # get :: BinHandle -> IO (Maybe a) #
Binary a => Binary [a] # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> [a] -> IO () # put :: BinHandle -> [a] -> IO (Bin [a]) # get :: BinHandle -> IO [a] #
(Ix a, Binary a, Binary b) => Binary (Array a b) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Array a b -> IO () # put :: BinHandle -> Array a b -> IO (Bin (Array a b)) # get :: BinHandle -> IO (Array a b) #
(Binary a, Binary b) => Binary (Either a b) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Either a b -> IO () # put :: BinHandle -> Either a b -> IO (Bin (Either a b)) # get :: BinHandle -> IO (Either a b) #
Typeable a => Binary (TypeRep a) # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TypeRep a -> IO () # put :: BinHandle -> TypeRep a -> IO (Bin (TypeRep a)) # get :: BinHandle -> IO (TypeRep a) #
Binary (EnumSet a) # | Represents the `EnumSet` as a bit set. Assumes that all elements are non-negative. This is only efficient for values that are sufficiently small, for example in the lower hundreds.
Instance details Defined in GHC.Data.EnumSet Methods put_ :: BinHandle -> EnumSet a -> IO () # put :: BinHandle -> EnumSet a -> IO (Bin (EnumSet a)) # get :: BinHandle -> IO (EnumSet a) #
Binary a => Binary (WithHsDocIdentifiers a GhcRn) # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO () # put :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO (Bin (WithHsDocIdentifiers a GhcRn)) # get :: BinHandle -> IO (WithHsDocIdentifiers a GhcRn) #
(Binary r, Binary b) => Binary (IfaceBindingX b r) # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBindingX b r -> IO () # put :: BinHandle -> IfaceBindingX b r -> IO (Bin (IfaceBindingX b r)) # get :: BinHandle -> IO (IfaceBindingX b r) #
(Binary tv, Binary vis) => Binary (VarBndr tv vis) # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> VarBndr tv vis -> IO () # put :: BinHandle -> VarBndr tv vis -> IO (Bin (VarBndr tv vis)) # get :: BinHandle -> IO (VarBndr tv vis) #
Binary (Bin a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Bin a -> IO () # put :: BinHandle -> Bin a -> IO (Bin (Bin a)) # get :: BinHandle -> IO (Bin a) #
(Binary a, Binary b) => Binary (a, b) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b) -> IO () # put :: BinHandle -> (a, b) -> IO (Bin (a, b)) # get :: BinHandle -> IO (a, b) #
(Binary a, Binary b, Binary c) => Binary (a, b, c) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c) -> IO () # put :: BinHandle -> (a, b, c) -> IO (Bin (a, b, c)) # get :: BinHandle -> IO (a, b, c) #
(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d) -> IO () # put :: BinHandle -> (a, b, c, d) -> IO (Bin (a, b, c, d)) # get :: BinHandle -> IO (a, b, c, d) #
(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e) -> IO () # put :: BinHandle -> (a, b, c, d, e) -> IO (Bin (a, b, c, d, e)) # get :: BinHandle -> IO (a, b, c, d, e) #
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e, f) -> IO () # put :: BinHandle -> (a, b, c, d, e, f) -> IO (Bin (a, b, c, d, e, f)) # get :: BinHandle -> IO (a, b, c, d, e, f) #
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e, f, g) -> IO () # put :: BinHandle -> (a, b, c, d, e, f, g) -> IO (Bin (a, b, c, d, e, f, g)) # get :: BinHandle -> IO (a, b, c, d, e, f, g) #

data BinHandle #

type SymbolTable = Array Int Name #

type Dictionary = Array Int FastString #

data BinData #

Constructors

BinData Int BinArray |

#### Instances

Instances details

NFData BinData # |
Instance details Defined in GHC.Utils.Binary Methods rnf :: BinData -> () #
Binary BinData # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinData -> IO () # put :: BinHandle -> BinData -> IO (Bin BinData) # get :: BinHandle -> IO BinData #

dataHandle :: BinData -> IO BinHandle #

handleData :: BinHandle -> IO BinData #

unsafeUnpackBinBuffer :: ByteString -> IO BinHandle #

openBinMem :: Int -> IO BinHandle #

seekBin :: forall {k} (a :: k). BinHandle -> Bin a -> IO () #

tellBin :: forall {k} (a :: k). BinHandle -> IO (Bin a) #

castBin :: forall {k1} {k2} (a :: k1) (b :: k2). Bin a -> Bin b #

withBinBuffer :: BinHandle -> (ByteString -> IO a) -> IO a #

Get access to the underlying buffer.

foldGet :: Binary a => Word -> BinHandle -> b -> (Word -> a -> b -> IO b) -> IO b #

foldGet' :: Binary a => Word -> BinHandle -> b -> (Word -> a -> b -> IO b) -> IO b #

writeBinMem :: BinHandle -> FilePath -> IO () #

readBinMem :: FilePath -> IO BinHandle #

readBinMemN :: Int -> FilePath -> IO (Maybe BinHandle) #

putAt :: Binary a => BinHandle -> Bin a -> a -> IO () #

getAt :: Binary a => BinHandle -> Bin a -> IO a #

forwardPut :: BinHandle -> (b -> IO a) -> IO b -> IO (a, b) #

"forwardPut put_A put_B" outputs A after B but allows A to be read before B by using a forward reference

forwardPut_ :: BinHandle -> (b -> IO a) -> IO b -> IO () #

forwardGet :: BinHandle -> IO a -> IO a #

Read a value stored using a forward reference

# For writing instances

putByte :: BinHandle -> Word8 -> IO () #

getByte :: BinHandle -> IO Word8 #

putByteString :: BinHandle -> ByteString -> IO () #

Put a ByteString without its length (can't be read back without knowing the length!)

getByteString :: BinHandle -> Int -> IO ByteString #

Get a ByteString whose length is known

# Variable length encodings

putULEB128 :: (Integral a, FiniteBits a) => BinHandle -> a -> IO () #

getULEB128 :: (Integral a, FiniteBits a) => BinHandle -> IO a #

putSLEB128 :: (Integral a, Bits a) => BinHandle -> a -> IO () #

getSLEB128 :: (Show a, Integral a, FiniteBits a) => BinHandle -> IO a #

# Fixed length encoding

newtype FixedLengthEncoding a #

Encode the argument in its full length. This is different from many default binary instances which make no guarantee about the actual encoding and might do things using variable length encoding.

Constructors

FixedLengthEncoding |

Fields

- unFixedLength :: a

#### Instances

Instances details

Show a => Show (FixedLengthEncoding a) # |
Instance details Defined in GHC.Utils.Binary Methods showsPrec :: Int -> FixedLengthEncoding a -> ShowS # show :: FixedLengthEncoding a -> String # showList :: [FixedLengthEncoding a] -> ShowS #
Binary (FixedLengthEncoding Word16) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word16 -> IO () # put :: BinHandle -> FixedLengthEncoding Word16 -> IO (Bin (FixedLengthEncoding Word16)) # get :: BinHandle -> IO (FixedLengthEncoding Word16) #
Binary (FixedLengthEncoding Word32) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word32 -> IO () # put :: BinHandle -> FixedLengthEncoding Word32 -> IO (Bin (FixedLengthEncoding Word32)) # get :: BinHandle -> IO (FixedLengthEncoding Word32) #
Binary (FixedLengthEncoding Word64) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word64 -> IO () # put :: BinHandle -> FixedLengthEncoding Word64 -> IO (Bin (FixedLengthEncoding Word64)) # get :: BinHandle -> IO (FixedLengthEncoding Word64) #
Binary (FixedLengthEncoding Word8) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word8 -> IO () # put :: BinHandle -> FixedLengthEncoding Word8 -> IO (Bin (FixedLengthEncoding Word8)) # get :: BinHandle -> IO (FixedLengthEncoding Word8) #
Eq a => Eq (FixedLengthEncoding a) # |
Instance details Defined in GHC.Utils.Binary Methods (==) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool # (/=) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool #
Ord a => Ord (FixedLengthEncoding a) # |

Instance details

Defined in GHC.Utils.Binary

Methods

compare :: FixedLengthEncoding a -> FixedLengthEncoding a -> Ordering #

(<) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool #

(<=) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool #

(>) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool #

(>=) :: FixedLengthEncoding a -> FixedLengthEncoding a -> Bool #

max :: FixedLengthEncoding a -> FixedLengthEncoding a -> FixedLengthEncoding a #

min :: FixedLengthEncoding a -> FixedLengthEncoding a -> FixedLengthEncoding a #

# Lazy Binary I/O

lazyGet :: Binary a => BinHandle -> IO a #

lazyPut :: Binary a => BinHandle -> a -> IO () #

lazyGetMaybe :: Binary a => BinHandle -> IO (Maybe a) #

Deserialize a value serialized by `lazyPutMaybe`.

lazyPutMaybe :: Binary a => BinHandle -> Maybe a -> IO () #

Serialize the constructor strictly but lazily serialize a value inside a `Just`.

This way we can check for the presence of a value without deserializing the value itself.

# User data

data UserData #

Information we keep around during interface file serialization/deserialization. Namely we keep the functions for serializing and deserializing `Name`s and `FastString`s. We do this because we actually use serialization in two distinct settings,

- When serializing interface files themselves
- When computing the fingerprint of an IfaceDecl (which we computing by hashing its Binary serialization)

These two settings have different needs while serializing Names:

- Names in interface files are serialized via a symbol table (see Note [Symbol table representation of names] in GHC.Iface.Binary).
- During fingerprinting a binding Name is serialized as the OccName and a non-binding Name is serialized as the fingerprint of the thing they represent. See Note [Fingerprinting IfaceDecls] for further discussion.

Constructors

UserData |

Fields

- ud_get_name :: BinHandle -> IO Name
- ud_get_fs :: BinHandle -> IO FastString
- ud_put_nonbinding_name :: BinHandle -> Name -> IO ()

  serialize a non-binding `Name` (e.g. a reference to another binding).

- ud_put_binding_name :: BinHandle -> Name -> IO ()

  serialize a binding `Name` (e.g. the name of an IfaceDecl)

- ud_put_fs :: BinHandle -> FastString -> IO ()

getUserData :: BinHandle -> UserData #

setUserData :: BinHandle -> UserData -> BinHandle #

newReadState #

Arguments

:: (BinHandle -> IO Name) | how to deserialize `Name`s
-> (BinHandle -> IO FastString) |
-> UserData |

newWriteState #

Arguments

:: (BinHandle -> Name -> IO ()) | how to serialize non-binding `Name`s
-> (BinHandle -> Name -> IO ()) | how to serialize binding `Name`s
-> (BinHandle -> FastString -> IO ()) |
-> UserData |

noUserData :: UserData #

# String table ("dictionary")

putDictionary :: BinHandle -> Int -> UniqFM FastString (Int, FastString) -> IO () #

getDictionary :: BinHandle -> IO Dictionary #

putFS :: BinHandle -> FastString -> IO () #

data FSTable #

initFSTable :: BinHandle -> IO (BinHandle, FSTable, IO Int) #

getDictFastString :: Dictionary -> BinHandle -> IO FastString #

putDictFastString :: FSTable -> BinHandle -> FastString -> IO () #

# Newtype wrappers

newtype BinSpan #

Constructors

BinSpan |

Fields

- unBinSpan :: RealSrcSpan

#### Instances

Instances details

Binary BinSpan # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSpan -> IO () # put :: BinHandle -> BinSpan -> IO (Bin BinSpan) # get :: BinHandle -> IO BinSpan #

newtype BinSrcSpan #

Constructors

BinSrcSpan |

Fields

- unBinSrcSpan :: SrcSpan

#### Instances

Instances details

Binary BinSrcSpan # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSrcSpan -> IO () # put :: BinHandle -> BinSrcSpan -> IO (Bin BinSrcSpan) # get :: BinHandle -> IO BinSrcSpan #

newtype BinLocated a #

Constructors

BinLocated |

Fields

- unBinLocated :: Located a

#### Instances

Instances details

Binary a => Binary (BinLocated a) # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinLocated a -> IO () # put :: BinHandle -> BinLocated a -> IO (Bin (BinLocated a)) # get :: BinHandle -> IO (BinLocated a) #