GHC.Utils.Binary

ghc-9.10.0.20240328: The GHC API

Safe Haskell | None
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) Source #

#### Instances

Instances details

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

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 () Source #

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

get :: BinHandle -> IO a Source #

#### Instances

Instances details

Binary ByteString Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ByteString -> IO () Source # put :: BinHandle -> ByteString -> IO (Bin ByteString) Source # get :: BinHandle -> IO ByteString Source #
Binary IsOrphan Source # |
Instance details Defined in GHC.Core Methods put_ :: BinHandle -> IsOrphan -> IO () Source # put :: BinHandle -> IsOrphan -> IO (Bin IsOrphan) Source # get :: BinHandle -> IO IsOrphan Source #
Binary StrictnessMark Source # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> StrictnessMark -> IO () Source # put :: BinHandle -> StrictnessMark -> IO (Bin StrictnessMark) Source # get :: BinHandle -> IO StrictnessMark Source #
Binary CallerCcFilter Source # |
Instance details Defined in GHC.Core.Opt.CallerCC.Types Methods put_ :: BinHandle -> CallerCcFilter -> IO () Source # put :: BinHandle -> CallerCcFilter -> IO (Bin CallerCcFilter) Source # get :: BinHandle -> IO CallerCcFilter Source #
Binary NamePattern Source # |
Instance details Defined in GHC.Core.Opt.CallerCC.Types Methods put_ :: BinHandle -> NamePattern -> IO () Source # put :: BinHandle -> NamePattern -> IO (Bin NamePattern) Source # get :: BinHandle -> IO NamePattern Source #
Binary CoSel Source # |
Instance details Defined in GHC.Core.TyCo.Rep Methods put_ :: BinHandle -> CoSel -> IO () Source # put :: BinHandle -> CoSel -> IO (Bin CoSel) Source # get :: BinHandle -> IO CoSel Source #
Binary Injectivity Source # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> Injectivity -> IO () Source # put :: BinHandle -> Injectivity -> IO (Bin Injectivity) Source # get :: BinHandle -> IO Injectivity Source #
Binary PrimElemRep Source # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> PrimElemRep -> IO () Source # put :: BinHandle -> PrimElemRep -> IO (Bin PrimElemRep) Source # get :: BinHandle -> IO PrimElemRep Source #
Binary PrimRep Source # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> PrimRep -> IO () Source # put :: BinHandle -> PrimRep -> IO (Bin PrimRep) Source # get :: BinHandle -> IO PrimRep Source #
Binary TyConBndrVis Source # |
Instance details Defined in GHC.Core.TyCon Methods put_ :: BinHandle -> TyConBndrVis -> IO () Source # put :: BinHandle -> TyConBndrVis -> IO (Bin TyConBndrVis) Source # get :: BinHandle -> IO TyConBndrVis Source #
Binary FastString Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FastString -> IO () Source # put :: BinHandle -> FastString -> IO (Bin FastString) Source # get :: BinHandle -> IO FastString Source #
Binary LexicalFastString Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> LexicalFastString -> IO () Source # put :: BinHandle -> LexicalFastString -> IO (Bin LexicalFastString) Source # get :: BinHandle -> IO LexicalFastString Source #
Binary NonDetFastString Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> NonDetFastString -> IO () Source # put :: BinHandle -> NonDetFastString -> IO (Bin NonDetFastString) Source # get :: BinHandle -> IO NonDetFastString Source #
Binary Language Source # |
Instance details Defined in GHC.Driver.Flags Methods put_ :: BinHandle -> Language -> IO () Source # put :: BinHandle -> Language -> IO (Bin Language) Source # get :: BinHandle -> IO Language Source #
Binary DocStructureItem Source # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> DocStructureItem -> IO () Source # put :: BinHandle -> DocStructureItem -> IO (Bin DocStructureItem) Source # get :: BinHandle -> IO DocStructureItem Source #
Binary Docs Source # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> Docs -> IO () Source # put :: BinHandle -> Docs -> IO (Bin Docs) Source # get :: BinHandle -> IO Docs Source #
Binary HsDocString Source # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocString -> IO () Source # put :: BinHandle -> HsDocString -> IO (Bin HsDocString) Source # get :: BinHandle -> IO HsDocString Source #
Binary HsDocStringChunk Source # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringChunk -> IO () Source # put :: BinHandle -> HsDocStringChunk -> IO (Bin HsDocStringChunk) Source # get :: BinHandle -> IO HsDocStringChunk Source #
Binary HsDocStringDecorator Source # |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringDecorator -> IO () Source # put :: BinHandle -> HsDocStringDecorator -> IO (Bin HsDocStringDecorator) Source # get :: BinHandle -> IO HsDocStringDecorator Source #
Binary ExtensibleFields Source # |
Instance details Defined in GHC.Iface.Ext.Fields Methods put_ :: BinHandle -> ExtensibleFields -> IO () Source # put :: BinHandle -> ExtensibleFields -> IO (Bin ExtensibleFields) Source # get :: BinHandle -> IO ExtensibleFields Source #
Binary BindType Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> BindType -> IO () Source # put :: BinHandle -> BindType -> IO (Bin BindType) Source # get :: BinHandle -> IO BindType Source #
Binary ContextInfo Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> ContextInfo -> IO () Source # put :: BinHandle -> ContextInfo -> IO (Bin ContextInfo) Source # get :: BinHandle -> IO ContextInfo Source #
Binary DeclType Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> DeclType -> IO () Source # put :: BinHandle -> DeclType -> IO (Bin DeclType) Source # get :: BinHandle -> IO DeclType Source #
Binary EvBindDeps Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> EvBindDeps -> IO () Source # put :: BinHandle -> EvBindDeps -> IO (Bin EvBindDeps) Source # get :: BinHandle -> IO EvBindDeps Source #
Binary EvVarSource Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> EvVarSource -> IO () Source # put :: BinHandle -> EvVarSource -> IO (Bin EvVarSource) Source # get :: BinHandle -> IO EvVarSource Source #
Binary HieFile Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> HieFile -> IO () Source # put :: BinHandle -> HieFile -> IO (Bin HieFile) Source # get :: BinHandle -> IO HieFile Source #
Binary IEType Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> IEType -> IO () Source # put :: BinHandle -> IEType -> IO (Bin IEType) Source # get :: BinHandle -> IO IEType Source #
Binary NodeAnnotation Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> NodeAnnotation -> IO () Source # put :: BinHandle -> NodeAnnotation -> IO (Bin NodeAnnotation) Source # get :: BinHandle -> IO NodeAnnotation Source #
Binary NodeOrigin Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> NodeOrigin -> IO () Source # put :: BinHandle -> NodeOrigin -> IO (Bin NodeOrigin) Source # get :: BinHandle -> IO NodeOrigin Source #
Binary RecFieldContext Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> RecFieldContext -> IO () Source # put :: BinHandle -> RecFieldContext -> IO (Bin RecFieldContext) Source # get :: BinHandle -> IO RecFieldContext Source #
Binary Scope Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> Scope -> IO () Source # put :: BinHandle -> Scope -> IO (Bin Scope) Source # get :: BinHandle -> IO Scope Source #
Binary TyVarScope Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> TyVarScope -> IO () Source # put :: BinHandle -> TyVarScope -> IO (Bin TyVarScope) Source # get :: BinHandle -> IO TyVarScope Source #
Binary IfGuidance Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfGuidance -> IO () Source # put :: BinHandle -> IfGuidance -> IO (Bin IfGuidance) Source # get :: BinHandle -> IO IfGuidance Source #
Binary IfaceAT Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAT -> IO () Source # put :: BinHandle -> IfaceAT -> IO (Bin IfaceAT) Source # get :: BinHandle -> IO IfaceAT Source #
Binary IfaceAlt Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAlt -> IO () Source # put :: BinHandle -> IfaceAlt -> IO (Bin IfaceAlt) Source # get :: BinHandle -> IO IfaceAlt Source #
Binary IfaceAnnotation Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAnnotation -> IO () Source # put :: BinHandle -> IfaceAnnotation -> IO (Bin IfaceAnnotation) Source # get :: BinHandle -> IO IfaceAnnotation Source #
Binary IfaceAxBranch Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceAxBranch -> IO () Source # put :: BinHandle -> IfaceAxBranch -> IO (Bin IfaceAxBranch) Source # get :: BinHandle -> IO IfaceAxBranch Source #
Binary IfaceBang Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBang -> IO () Source # put :: BinHandle -> IfaceBang -> IO (Bin IfaceBang) Source # get :: BinHandle -> IO IfaceBang Source #
Binary IfaceBooleanFormula Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBooleanFormula -> IO () Source # put :: BinHandle -> IfaceBooleanFormula -> IO (Bin IfaceBooleanFormula) Source # get :: BinHandle -> IO IfaceBooleanFormula Source #
Binary IfaceClassOp Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceClassOp -> IO () Source # put :: BinHandle -> IfaceClassOp -> IO (Bin IfaceClassOp) Source # get :: BinHandle -> IO IfaceClassOp Source #
Binary IfaceClsInst Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceClsInst -> IO () Source # put :: BinHandle -> IfaceClsInst -> IO (Bin IfaceClsInst) Source # get :: BinHandle -> IO IfaceClsInst Source #
Binary IfaceCompleteMatch Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceCompleteMatch -> IO () Source # put :: BinHandle -> IfaceCompleteMatch -> IO (Bin IfaceCompleteMatch) Source # get :: BinHandle -> IO IfaceCompleteMatch Source #
Binary IfaceConAlt Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConAlt -> IO () Source # put :: BinHandle -> IfaceConAlt -> IO (Bin IfaceConAlt) Source # get :: BinHandle -> IO IfaceConAlt Source #
Binary IfaceConDecl Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConDecl -> IO () Source # put :: BinHandle -> IfaceConDecl -> IO (Bin IfaceConDecl) Source # get :: BinHandle -> IO IfaceConDecl Source #
Binary IfaceConDecls Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceConDecls -> IO () Source # put :: BinHandle -> IfaceConDecls -> IO (Bin IfaceConDecls) Source # get :: BinHandle -> IO IfaceConDecls Source #
Binary IfaceDecl Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceDecl -> IO () Source # put :: BinHandle -> IfaceDecl -> IO (Bin IfaceDecl) Source # get :: BinHandle -> IO IfaceDecl Source #
Binary IfaceExpr Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceExpr -> IO () Source # put :: BinHandle -> IfaceExpr -> IO (Bin IfaceExpr) Source # get :: BinHandle -> IO IfaceExpr Source #
Binary IfaceFamInst Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceFamInst -> IO () Source # put :: BinHandle -> IfaceFamInst -> IO (Bin IfaceFamInst) Source # get :: BinHandle -> IO IfaceFamInst Source #
Binary IfaceFamTyConFlav Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceFamTyConFlav -> IO () Source # put :: BinHandle -> IfaceFamTyConFlav -> IO (Bin IfaceFamTyConFlav) Source # get :: BinHandle -> IO IfaceFamTyConFlav Source #
Binary IfaceIdDetails Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceIdDetails -> IO () Source # put :: BinHandle -> IfaceIdDetails -> IO (Bin IfaceIdDetails) Source # get :: BinHandle -> IO IfaceIdDetails Source #
Binary IfaceInfoItem Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceInfoItem -> IO () Source # put :: BinHandle -> IfaceInfoItem -> IO (Bin IfaceInfoItem) Source # get :: BinHandle -> IO IfaceInfoItem Source #
Binary IfaceLFInfo Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceLFInfo -> IO () Source # put :: BinHandle -> IfaceLFInfo -> IO (Bin IfaceLFInfo) Source # get :: BinHandle -> IO IfaceLFInfo Source #
Binary IfaceLetBndr Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceLetBndr -> IO () Source # put :: BinHandle -> IfaceLetBndr -> IO (Bin IfaceLetBndr) Source # get :: BinHandle -> IO IfaceLetBndr Source #
Binary IfaceMaybeRhs Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceMaybeRhs -> IO () Source # put :: BinHandle -> IfaceMaybeRhs -> IO (Bin IfaceMaybeRhs) Source # get :: BinHandle -> IO IfaceMaybeRhs Source #
Binary IfaceRule Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceRule -> IO () Source # put :: BinHandle -> IfaceRule -> IO (Bin IfaceRule) Source # get :: BinHandle -> IO IfaceRule Source #
Binary IfaceSrcBang Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceSrcBang -> IO () Source # put :: BinHandle -> IfaceSrcBang -> IO (Bin IfaceSrcBang) Source # get :: BinHandle -> IO IfaceSrcBang Source #
Binary IfaceStringLiteral Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceStringLiteral -> IO () Source # put :: BinHandle -> IfaceStringLiteral -> IO (Bin IfaceStringLiteral) Source # get :: BinHandle -> IO IfaceStringLiteral Source #
Binary IfaceTickish Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTickish -> IO () Source # put :: BinHandle -> IfaceTickish -> IO (Bin IfaceTickish) Source # get :: BinHandle -> IO IfaceTickish Source #
Binary IfaceTopBndrInfo Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTopBndrInfo -> IO () Source # put :: BinHandle -> IfaceTopBndrInfo -> IO (Bin IfaceTopBndrInfo) Source # get :: BinHandle -> IO IfaceTopBndrInfo Source #
Binary IfaceTyConParent Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceTyConParent -> IO () Source # put :: BinHandle -> IfaceTyConParent -> IO (Bin IfaceTyConParent) Source # get :: BinHandle -> IO IfaceTyConParent Source #
Binary IfaceUnfolding Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceUnfolding -> IO () Source # put :: BinHandle -> IfaceUnfolding -> IO (Bin IfaceUnfolding) Source # get :: BinHandle -> IO IfaceUnfolding Source #
Binary IfaceWarningTxt Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceWarningTxt -> IO () Source # put :: BinHandle -> IfaceWarningTxt -> IO (Bin IfaceWarningTxt) Source # get :: BinHandle -> IO IfaceWarningTxt Source #
Binary IfaceWarnings Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceWarnings -> IO () Source # put :: BinHandle -> IfaceWarnings -> IO (Bin IfaceWarnings) Source # get :: BinHandle -> IO IfaceWarnings Source #
Binary IfaceAppArgs Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceAppArgs -> IO () Source # put :: BinHandle -> IfaceAppArgs -> IO (Bin IfaceAppArgs) Source # get :: BinHandle -> IO IfaceAppArgs Source #
Binary IfaceBndr Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceBndr -> IO () Source # put :: BinHandle -> IfaceBndr -> IO (Bin IfaceBndr) Source # get :: BinHandle -> IO IfaceBndr Source #
Binary IfaceCoercion Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceCoercion -> IO () Source # put :: BinHandle -> IfaceCoercion -> IO (Bin IfaceCoercion) Source # get :: BinHandle -> IO IfaceCoercion Source #
Binary IfaceMCoercion Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceMCoercion -> IO () Source # put :: BinHandle -> IfaceMCoercion -> IO (Bin IfaceMCoercion) Source # get :: BinHandle -> IO IfaceMCoercion Source #
Binary IfaceOneShot Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceOneShot -> IO () Source # put :: BinHandle -> IfaceOneShot -> IO (Bin IfaceOneShot) Source # get :: BinHandle -> IO IfaceOneShot Source #
Binary IfaceTyCon Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyCon -> IO () Source # put :: BinHandle -> IfaceTyCon -> IO (Bin IfaceTyCon) Source # get :: BinHandle -> IO IfaceTyCon Source #
Binary IfaceTyConInfo Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyConInfo -> IO () Source # put :: BinHandle -> IfaceTyConInfo -> IO (Bin IfaceTyConInfo) Source # get :: BinHandle -> IO IfaceTyConInfo Source #
Binary IfaceTyConSort Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyConSort -> IO () Source # put :: BinHandle -> IfaceTyConSort -> IO (Bin IfaceTyConSort) Source # get :: BinHandle -> IO IfaceTyConSort Source #
Binary IfaceTyLit Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyLit -> IO () Source # put :: BinHandle -> IfaceTyLit -> IO (Bin IfaceTyLit) Source # get :: BinHandle -> IO IfaceTyLit Source #
Binary IfaceType Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceType -> IO () Source # put :: BinHandle -> IfaceType -> IO (Bin IfaceType) Source # get :: BinHandle -> IO IfaceType Source #
Binary IfaceUnivCoProv Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceUnivCoProv -> IO () Source # put :: BinHandle -> IfaceUnivCoProv -> IO (Bin IfaceUnivCoProv) Source # get :: BinHandle -> IO IfaceUnivCoProv Source #
Binary Ident Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> Ident -> IO () Source # put :: BinHandle -> Ident -> IO (Bin Ident) Source # get :: BinHandle -> IO Ident Source #
Binary AOp Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> AOp -> IO () Source # put :: BinHandle -> AOp -> IO (Bin AOp) Source # get :: BinHandle -> IO AOp Source #
Binary JExpr Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JExpr -> IO () Source # put :: BinHandle -> JExpr -> IO (Bin JExpr) Source # get :: BinHandle -> IO JExpr Source #
Binary JStat Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JStat -> IO () Source # put :: BinHandle -> JStat -> IO (Bin JStat) Source # get :: BinHandle -> IO JStat Source #
Binary JVal Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JVal -> IO () Source # put :: BinHandle -> JVal -> IO (Bin JVal) Source # get :: BinHandle -> IO JVal Source #
Binary Op Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> Op -> IO () Source # put :: BinHandle -> Op -> IO (Bin Op) Source # get :: BinHandle -> IO Op Source #
Binary UOp Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> UOp -> IO () Source # put :: BinHandle -> UOp -> IO (Bin UOp) Source # get :: BinHandle -> IO UOp Source #
Binary TagInfo Source # |
Instance details Defined in GHC.Stg.InferTags.TagSig Methods put_ :: BinHandle -> TagInfo -> IO () Source # put :: BinHandle -> TagInfo -> IO (Bin TagInfo) Source # get :: BinHandle -> IO TagInfo Source #
Binary TagSig Source # |
Instance details Defined in GHC.Stg.InferTags.TagSig Methods put_ :: BinHandle -> TagSig -> IO () Source # put :: BinHandle -> TagSig -> IO (Bin TagSig) Source # get :: BinHandle -> IO TagSig Source #
Binary BlockDeps Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> BlockDeps -> IO () Source # put :: BinHandle -> BlockDeps -> IO (Bin BlockDeps) Source # get :: BinHandle -> IO BlockDeps Source #
Binary BlockInfo Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> BlockInfo -> IO () Source # put :: BinHandle -> BlockInfo -> IO (Bin BlockInfo) Source # get :: BinHandle -> IO BlockInfo Source #
Binary ExportedFun Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ExportedFun -> IO () Source # put :: BinHandle -> ExportedFun -> IO (Bin ExportedFun) Source # get :: BinHandle -> IO ExportedFun Source #
Binary IndexEntry Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> IndexEntry -> IO () Source # put :: BinHandle -> IndexEntry -> IO (Bin IndexEntry) Source # get :: BinHandle -> IO IndexEntry Source #
Binary JSOptions Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSOptions -> IO () Source # put :: BinHandle -> JSOptions -> IO (Bin JSOptions) Source # get :: BinHandle -> IO JSOptions Source #
Binary CILayout Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CILayout -> IO () Source # put :: BinHandle -> CILayout -> IO (Bin CILayout) Source # get :: BinHandle -> IO CILayout Source #
Binary CIRegs Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIRegs -> IO () Source # put :: BinHandle -> CIRegs -> IO (Bin CIRegs) Source # get :: BinHandle -> IO CIRegs Source #
Binary CIStatic Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIStatic -> IO () Source # put :: BinHandle -> CIStatic -> IO (Bin CIStatic) Source # get :: BinHandle -> IO CIStatic Source #
Binary CIType Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> CIType -> IO () Source # put :: BinHandle -> CIType -> IO (Bin CIType) Source # get :: BinHandle -> IO CIType Source #
Binary ClosureInfo Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ClosureInfo -> IO () Source # put :: BinHandle -> ClosureInfo -> IO (Bin ClosureInfo) Source # get :: BinHandle -> IO ClosureInfo Source #
Binary ExpFun Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ExpFun -> IO () Source # put :: BinHandle -> ExpFun -> IO (Bin ExpFun) Source # get :: BinHandle -> IO ExpFun Source #
Binary ForeignJSRef Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> ForeignJSRef -> IO () Source # put :: BinHandle -> ForeignJSRef -> IO (Bin ForeignJSRef) Source # get :: BinHandle -> IO ForeignJSRef Source #
Binary JSFFIType Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSFFIType -> IO () Source # put :: BinHandle -> JSFFIType -> IO (Bin JSFFIType) Source # get :: BinHandle -> IO JSFFIType Source #
Binary JSRep Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> JSRep -> IO () Source # put :: BinHandle -> JSRep -> IO (Bin JSRep) Source # get :: BinHandle -> IO JSRep Source #
Binary StaticArg Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticArg -> IO () Source # put :: BinHandle -> StaticArg -> IO (Bin StaticArg) Source # get :: BinHandle -> IO StaticArg Source #
Binary StaticInfo Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticInfo -> IO () Source # put :: BinHandle -> StaticInfo -> IO (Bin StaticInfo) Source # get :: BinHandle -> IO StaticInfo Source #
Binary StaticLit Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticLit -> IO () Source # put :: BinHandle -> StaticLit -> IO (Bin StaticLit) Source # get :: BinHandle -> IO StaticLit Source #
Binary StaticUnboxed Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticUnboxed -> IO () Source # put :: BinHandle -> StaticUnboxed -> IO (Bin StaticUnboxed) Source # get :: BinHandle -> IO StaticUnboxed Source #
Binary StaticVal Source # |
Instance details Defined in GHC.StgToJS.Object Methods put_ :: BinHandle -> StaticVal -> IO () Source # put :: BinHandle -> StaticVal -> IO (Bin StaticVal) Source # get :: BinHandle -> IO StaticVal Source #
Binary AvailInfo Source # |
Instance details Defined in GHC.Types.Avail Methods put_ :: BinHandle -> AvailInfo -> IO () Source # put :: BinHandle -> AvailInfo -> IO (Bin AvailInfo) Source # get :: BinHandle -> IO AvailInfo Source #
Binary Activation Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Activation -> IO () Source # put :: BinHandle -> Activation -> IO (Bin Activation) Source # get :: BinHandle -> IO Activation Source #
Binary CbvMark Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> CbvMark -> IO () Source # put :: BinHandle -> CbvMark -> IO (Bin CbvMark) Source # get :: BinHandle -> IO CbvMark Source #
Binary FunctionOrData Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> FunctionOrData -> IO () Source # put :: BinHandle -> FunctionOrData -> IO (Bin FunctionOrData) Source # get :: BinHandle -> IO FunctionOrData Source #
Binary InlinePragma Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> InlinePragma -> IO () Source # put :: BinHandle -> InlinePragma -> IO (Bin InlinePragma) Source # get :: BinHandle -> IO InlinePragma Source #
Binary InlineSpec Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> InlineSpec -> IO () Source # put :: BinHandle -> InlineSpec -> IO (Bin InlineSpec) Source # get :: BinHandle -> IO InlineSpec Source #
Binary LeftOrRight Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> LeftOrRight -> IO () Source # put :: BinHandle -> LeftOrRight -> IO (Bin LeftOrRight) Source # get :: BinHandle -> IO LeftOrRight Source #
Binary Levity Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Levity -> IO () Source # put :: BinHandle -> Levity -> IO (Bin Levity) Source # get :: BinHandle -> IO Levity Source #
Binary OverlapFlag Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> OverlapFlag -> IO () Source # put :: BinHandle -> OverlapFlag -> IO (Bin OverlapFlag) Source # get :: BinHandle -> IO OverlapFlag Source #
Binary OverlapMode Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> OverlapMode -> IO () Source # put :: BinHandle -> OverlapMode -> IO (Bin OverlapMode) Source # get :: BinHandle -> IO OverlapMode Source #
Binary RecFlag Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> RecFlag -> IO () Source # put :: BinHandle -> RecFlag -> IO (Bin RecFlag) Source # get :: BinHandle -> IO RecFlag Source #
Binary RuleMatchInfo Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> RuleMatchInfo -> IO () Source # put :: BinHandle -> RuleMatchInfo -> IO (Bin RuleMatchInfo) Source # get :: BinHandle -> IO RuleMatchInfo Source #
Binary TupleSort Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> TupleSort -> IO () Source # put :: BinHandle -> TupleSort -> IO (Bin TupleSort) Source # get :: BinHandle -> IO TupleSort Source #
Binary UnfoldingSource Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> UnfoldingSource -> IO () Source # put :: BinHandle -> UnfoldingSource -> IO (Bin UnfoldingSource) Source # get :: BinHandle -> IO UnfoldingSource Source #
Binary CCFlavour Source # |
Instance details Defined in GHC.Types.CostCentre Methods put_ :: BinHandle -> CCFlavour -> IO () Source # put :: BinHandle -> CCFlavour -> IO (Bin CCFlavour) Source # get :: BinHandle -> IO CCFlavour Source #
Binary CostCentre Source # |
Instance details Defined in GHC.Types.CostCentre Methods put_ :: BinHandle -> CostCentre -> IO () Source # put :: BinHandle -> CostCentre -> IO (Bin CostCentre) Source # get :: BinHandle -> IO CostCentre Source #
Binary CostCentreIndex Source # |
Instance details Defined in GHC.Types.CostCentre.State Methods put_ :: BinHandle -> CostCentreIndex -> IO () Source # put :: BinHandle -> CostCentreIndex -> IO (Bin CostCentreIndex) Source # get :: BinHandle -> IO CostCentreIndex Source #
Binary Cpr Source # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> Cpr -> IO () Source # put :: BinHandle -> Cpr -> IO (Bin Cpr) Source # get :: BinHandle -> IO Cpr Source #
Binary CprSig Source # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> CprSig -> IO () Source # put :: BinHandle -> CprSig -> IO (Bin CprSig) Source # get :: BinHandle -> IO CprSig Source #
Binary CprType Source # |
Instance details Defined in GHC.Types.Cpr Methods put_ :: BinHandle -> CprType -> IO () Source # put :: BinHandle -> CprType -> IO (Bin CprType) Source # get :: BinHandle -> IO CprType Source #
Binary Card Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Card -> IO () Source # put :: BinHandle -> Card -> IO (Bin Card) Source # get :: BinHandle -> IO Card Source #
Binary Demand Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Demand -> IO () Source # put :: BinHandle -> Demand -> IO (Bin Demand) Source # get :: BinHandle -> IO Demand Source #
Binary Divergence Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> Divergence -> IO () Source # put :: BinHandle -> Divergence -> IO (Bin Divergence) Source # get :: BinHandle -> IO Divergence Source #
Binary DmdEnv Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdEnv -> IO () Source # put :: BinHandle -> DmdEnv -> IO (Bin DmdEnv) Source # get :: BinHandle -> IO DmdEnv Source #
Binary DmdSig Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdSig -> IO () Source # put :: BinHandle -> DmdSig -> IO (Bin DmdSig) Source # get :: BinHandle -> IO DmdSig Source #
Binary DmdType Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> DmdType -> IO () Source # put :: BinHandle -> DmdType -> IO (Bin DmdType) Source # get :: BinHandle -> IO DmdType Source #
Binary SubDemand Source # |
Instance details Defined in GHC.Types.Demand Methods put_ :: BinHandle -> SubDemand -> IO () Source # put :: BinHandle -> SubDemand -> IO (Bin SubDemand) Source # get :: BinHandle -> IO SubDemand Source #
Binary DuplicateRecordFields Source # |
Instance details Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> DuplicateRecordFields -> IO () Source # put :: BinHandle -> DuplicateRecordFields -> IO (Bin DuplicateRecordFields) Source # get :: BinHandle -> IO DuplicateRecordFields Source #
Binary Name => Binary FieldLabel Source # | 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 () Source # put :: BinHandle -> FieldLabel -> IO (Bin FieldLabel) Source # get :: BinHandle -> IO FieldLabel Source #
Binary FieldSelectors Source # |
Instance details Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> FieldSelectors -> IO () Source # put :: BinHandle -> FieldSelectors -> IO (Bin FieldSelectors) Source # get :: BinHandle -> IO FieldSelectors Source #
Binary Fixity Source # |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> Fixity -> IO () Source # put :: BinHandle -> Fixity -> IO (Bin Fixity) Source # get :: BinHandle -> IO Fixity Source #
Binary FixityDirection Source # |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> FixityDirection -> IO () Source # put :: BinHandle -> FixityDirection -> IO (Bin FixityDirection) Source # get :: BinHandle -> IO FixityDirection Source #
Binary CCallConv Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallConv -> IO () Source # put :: BinHandle -> CCallConv -> IO (Bin CCallConv) Source # get :: BinHandle -> IO CCallConv Source #
Binary CCallSpec Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallSpec -> IO () Source # put :: BinHandle -> CCallSpec -> IO (Bin CCallSpec) Source # get :: BinHandle -> IO CCallSpec Source #
Binary CCallTarget Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CCallTarget -> IO () Source # put :: BinHandle -> CCallTarget -> IO (Bin CCallTarget) Source # get :: BinHandle -> IO CCallTarget Source #
Binary CExportSpec Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CExportSpec -> IO () Source # put :: BinHandle -> CExportSpec -> IO (Bin CExportSpec) Source # get :: BinHandle -> IO CExportSpec Source #
Binary CType Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> CType -> IO () Source # put :: BinHandle -> CType -> IO (Bin CType) Source # get :: BinHandle -> IO CType Source #
Binary ForeignCall Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> ForeignCall -> IO () Source # put :: BinHandle -> ForeignCall -> IO (Bin ForeignCall) Source # get :: BinHandle -> IO ForeignCall Source #
Binary Header Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> Header -> IO () Source # put :: BinHandle -> Header -> IO (Bin Header) Source # get :: BinHandle -> IO Header Source #
Binary Safety Source # |
Instance details Defined in GHC.Types.ForeignCall Methods put_ :: BinHandle -> Safety -> IO () Source # put :: BinHandle -> Safety -> IO (Bin Safety) Source # get :: BinHandle -> IO Safety Source #
Binary LitNumType Source # |
Instance details Defined in GHC.Types.Literal Methods put_ :: BinHandle -> LitNumType -> IO () Source # put :: BinHandle -> LitNumType -> IO (Bin LitNumType) Source # get :: BinHandle -> IO LitNumType Source #
Binary Literal Source # |
Instance details Defined in GHC.Types.Literal Methods put_ :: BinHandle -> Literal -> IO () Source # put :: BinHandle -> Literal -> IO (Bin Literal) Source # get :: BinHandle -> IO Literal Source #
Binary Name Source # | 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 () Source # put :: BinHandle -> Name -> IO (Bin Name) Source # get :: BinHandle -> IO Name Source #
Binary NameSpace Source # |
Instance details Defined in GHC.Types.Name.Occurrence Methods put_ :: BinHandle -> NameSpace -> IO () Source # put :: BinHandle -> NameSpace -> IO (Bin NameSpace) Source # get :: BinHandle -> IO NameSpace Source #
Binary OccName Source # |
Instance details Defined in GHC.Types.Name.Occurrence Methods put_ :: BinHandle -> OccName -> IO () Source # put :: BinHandle -> OccName -> IO (Bin OccName) Source # get :: BinHandle -> IO OccName Source #
Binary IfaceTrustInfo Source # |
Instance details Defined in GHC.Types.SafeHaskell Methods put_ :: BinHandle -> IfaceTrustInfo -> IO () Source # put :: BinHandle -> IfaceTrustInfo -> IO (Bin IfaceTrustInfo) Source # get :: BinHandle -> IO IfaceTrustInfo Source #
Binary SaneDouble Source # |
Instance details Defined in GHC.Types.SaneDouble Methods put_ :: BinHandle -> SaneDouble -> IO () Source # put :: BinHandle -> SaneDouble -> IO (Bin SaneDouble) Source # get :: BinHandle -> IO SaneDouble Source #
Binary HscSource Source # |
Instance details Defined in GHC.Types.SourceFile Methods put_ :: BinHandle -> HscSource -> IO () Source # put :: BinHandle -> HscSource -> IO (Bin HscSource) Source # get :: BinHandle -> IO HscSource Source #
Binary SourceText Source # |
Instance details Defined in GHC.Types.SourceText Methods put_ :: BinHandle -> SourceText -> IO () Source # put :: BinHandle -> SourceText -> IO (Bin SourceText) Source # get :: BinHandle -> IO SourceText Source #
Binary UnhelpfulSpanReason Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> UnhelpfulSpanReason -> IO () Source # put :: BinHandle -> UnhelpfulSpanReason -> IO (Bin UnhelpfulSpanReason) Source # get :: BinHandle -> IO UnhelpfulSpanReason Source #
Binary ForAllTyFlag Source # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> ForAllTyFlag -> IO () Source # put :: BinHandle -> ForAllTyFlag -> IO (Bin ForAllTyFlag) Source # get :: BinHandle -> IO ForAllTyFlag Source #
Binary FunTyFlag Source # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> FunTyFlag -> IO () Source # put :: BinHandle -> FunTyFlag -> IO (Bin FunTyFlag) Source # get :: BinHandle -> IO FunTyFlag Source #
Binary Specificity Source # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> Specificity -> IO () Source # put :: BinHandle -> Specificity -> IO (Bin Specificity) Source # get :: BinHandle -> IO Specificity Source #
Binary Dependencies Source # |
Instance details Defined in GHC.Unit.Module.Deps Methods put_ :: BinHandle -> Dependencies -> IO () Source # put :: BinHandle -> Dependencies -> IO (Bin Dependencies) Source # get :: BinHandle -> IO Dependencies Source #
Binary Usage Source # |
Instance details Defined in GHC.Unit.Module.Deps Methods put_ :: BinHandle -> Usage -> IO () Source # put :: BinHandle -> Usage -> IO (Bin Usage) Source # get :: BinHandle -> IO Usage Source #
Binary ModIface Source # |
Instance details Defined in GHC.Unit.Module.ModIface Methods put_ :: BinHandle -> ModIface -> IO () Source # put :: BinHandle -> ModIface -> IO (Bin ModIface) Source # get :: BinHandle -> IO ModIface Source #
Binary WarningCategory Source # |
Instance details Defined in GHC.Unit.Module.Warnings Methods put_ :: BinHandle -> WarningCategory -> IO () Source # put :: BinHandle -> WarningCategory -> IO (Bin WarningCategory) Source # get :: BinHandle -> IO WarningCategory Source #
Binary InstantiatedUnit Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> InstantiatedUnit -> IO () Source # put :: BinHandle -> InstantiatedUnit -> IO (Bin InstantiatedUnit) Source # get :: BinHandle -> IO InstantiatedUnit Source #
Binary Unit Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> Unit -> IO () Source # put :: BinHandle -> Unit -> IO (Bin Unit) Source # get :: BinHandle -> IO Unit Source #
Binary UnitId Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> UnitId -> IO () Source # put :: BinHandle -> UnitId -> IO (Bin UnitId) Source # get :: BinHandle -> IO UnitId Source #
Binary BinData Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinData -> IO () Source # put :: BinHandle -> BinData -> IO (Bin BinData) Source # get :: BinHandle -> IO BinData Source #
Binary BinSpan Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSpan -> IO () Source # put :: BinHandle -> BinSpan -> IO (Bin BinSpan) Source # get :: BinHandle -> IO BinSpan Source #
Binary BinSrcSpan Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinSrcSpan -> IO () Source # put :: BinHandle -> BinSrcSpan -> IO (Bin BinSrcSpan) Source # get :: BinHandle -> IO BinSrcSpan Source #
Binary JoinPointHood Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> JoinPointHood -> IO () Source # put :: BinHandle -> JoinPointHood -> IO (Bin JoinPointHood) Source # get :: BinHandle -> IO JoinPointHood Source #
Binary Boxity Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> Boxity -> IO () Source # put :: BinHandle -> Boxity -> IO (Bin Boxity) Source # get :: BinHandle -> IO Boxity Source #
Binary Role Source # |
Instance details Defined in GHC.Core.Coercion.Axiom Methods put_ :: BinHandle -> Role -> IO () Source # put :: BinHandle -> Role -> IO (Bin Role) Source # get :: BinHandle -> IO Role Source #
Binary SrcStrictness Source # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcStrictness -> IO () Source # put :: BinHandle -> SrcStrictness -> IO (Bin SrcStrictness) Source # get :: BinHandle -> IO SrcStrictness Source #
Binary SrcUnpackedness Source # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcUnpackedness -> IO () Source # put :: BinHandle -> SrcUnpackedness -> IO (Bin SrcUnpackedness) Source # get :: BinHandle -> IO SrcUnpackedness Source #
Binary IsBootInterface Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> IsBootInterface -> IO () Source # put :: BinHandle -> IsBootInterface -> IO (Bin IsBootInterface) Source # get :: BinHandle -> IO IsBootInterface Source #
Binary ModuleName Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ModuleName -> IO () Source # put :: BinHandle -> ModuleName -> IO (Bin ModuleName) Source # get :: BinHandle -> IO ModuleName Source #
Binary PromotionFlag Source # |
Instance details Defined in GHC.Types.Basic Methods put_ :: BinHandle -> PromotionFlag -> IO () Source # put :: BinHandle -> PromotionFlag -> IO (Bin PromotionFlag) Source # get :: BinHandle -> IO PromotionFlag Source #
Binary Serialized Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> Serialized -> IO () Source # put :: BinHandle -> Serialized -> IO (Bin Serialized) Source # get :: BinHandle -> IO Serialized Source #
Binary SomeTypeRep Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> SomeTypeRep -> IO () Source # put :: BinHandle -> SomeTypeRep -> IO (Bin SomeTypeRep) Source # get :: BinHandle -> IO SomeTypeRep Source #
Binary Fingerprint Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Fingerprint -> IO () Source # put :: BinHandle -> Fingerprint -> IO (Bin Fingerprint) Source # get :: BinHandle -> IO Fingerprint Source #
Binary Int16 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int16 -> IO () Source # put :: BinHandle -> Int16 -> IO (Bin Int16) Source # get :: BinHandle -> IO Int16 Source #
Binary Int32 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int32 -> IO () Source # put :: BinHandle -> Int32 -> IO (Bin Int32) Source # get :: BinHandle -> IO Int32 Source #
Binary Int64 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int64 -> IO () Source # put :: BinHandle -> Int64 -> IO (Bin Int64) Source # get :: BinHandle -> IO Int64 Source #
Binary Int8 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int8 -> IO () Source # put :: BinHandle -> Int8 -> IO (Bin Int8) Source # get :: BinHandle -> IO Int8 Source #
Binary Word16 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word16 -> IO () Source # put :: BinHandle -> Word16 -> IO (Bin Word16) Source # get :: BinHandle -> IO Word16 Source #
Binary Word32 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word32 -> IO () Source # put :: BinHandle -> Word32 -> IO (Bin Word32) Source # get :: BinHandle -> IO Word32 Source #
Binary Word64 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word64 -> IO () Source # put :: BinHandle -> Word64 -> IO (Bin Word64) Source # get :: BinHandle -> IO Word64 Source #
Binary Word8 Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Word8 -> IO () Source # put :: BinHandle -> Word8 -> IO (Bin Word8) Source # get :: BinHandle -> IO Word8 Source #
Binary KindRep Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> KindRep -> IO () Source # put :: BinHandle -> KindRep -> IO (Bin KindRep) Source # get :: BinHandle -> IO KindRep Source #
Binary TyCon Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TyCon -> IO () Source # put :: BinHandle -> TyCon -> IO (Bin TyCon) Source # get :: BinHandle -> IO TyCon Source #
Binary TypeLitSort Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TypeLitSort -> IO () Source # put :: BinHandle -> TypeLitSort -> IO (Bin TypeLitSort) Source # get :: BinHandle -> IO TypeLitSort Source #
Binary Day Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Day -> IO () Source # put :: BinHandle -> Day -> IO (Bin Day) Source # get :: BinHandle -> IO Day Source #
Binary DiffTime Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> DiffTime -> IO () Source # put :: BinHandle -> DiffTime -> IO (Bin DiffTime) Source # get :: BinHandle -> IO DiffTime Source #
Binary UTCTime Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> UTCTime -> IO () Source # put :: BinHandle -> UTCTime -> IO (Bin UTCTime) Source # get :: BinHandle -> IO UTCTime Source #
Binary Integer Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Integer -> IO () Source # put :: BinHandle -> Integer -> IO (Bin Integer) Source # get :: BinHandle -> IO Integer Source #
Binary () Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> () -> IO () Source # put :: BinHandle -> () -> IO (Bin ()) Source # get :: BinHandle -> IO () Source #
Binary Bool Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Bool -> IO () Source # put :: BinHandle -> Bool -> IO (Bin Bool) Source # get :: BinHandle -> IO Bool Source #
Binary Char Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Char -> IO () Source # put :: BinHandle -> Char -> IO (Bin Char) Source # get :: BinHandle -> IO Char Source #
Binary Int Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Int -> IO () Source # put :: BinHandle -> Int -> IO (Bin Int) Source # get :: BinHandle -> IO Int Source #
Binary RuntimeRep Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> RuntimeRep -> IO () Source # put :: BinHandle -> RuntimeRep -> IO (Bin RuntimeRep) Source # get :: BinHandle -> IO RuntimeRep Source #
Binary VecCount Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> VecCount -> IO () Source # put :: BinHandle -> VecCount -> IO (Bin VecCount) Source # get :: BinHandle -> IO VecCount Source #
Binary VecElem Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> VecElem -> IO () Source # put :: BinHandle -> VecElem -> IO (Bin VecElem) Source # get :: BinHandle -> IO VecElem Source #
Binary v => Binary (IntMap v) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> IntMap v -> IO () Source # put :: BinHandle -> IntMap v -> IO (Bin (IntMap v)) Source # get :: BinHandle -> IO (IntMap v) Source #
(Binary a, Ord a) => Binary (Set a) Source # | 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 () Source # put :: BinHandle -> Set a -> IO (Bin (Set a)) Source # get :: BinHandle -> IO (Set a) Source #
Binary a => Binary (Maybe a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Maybe a -> IO () Source # put :: BinHandle -> Maybe a -> IO (Bin (Maybe a)) Source # get :: BinHandle -> IO (Maybe a) Source #
Binary (HieAST TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> HieAST TypeIndex -> IO () Source # put :: BinHandle -> HieAST TypeIndex -> IO (Bin (HieAST TypeIndex)) Source # get :: BinHandle -> IO (HieAST TypeIndex) Source #
Binary (HieASTs TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> HieASTs TypeIndex -> IO () Source # put :: BinHandle -> HieASTs TypeIndex -> IO (Bin (HieASTs TypeIndex)) Source # get :: BinHandle -> IO (HieASTs TypeIndex) Source #
Binary (HieArgs TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> HieArgs TypeIndex -> IO () Source # put :: BinHandle -> HieArgs TypeIndex -> IO (Bin (HieArgs TypeIndex)) Source # get :: BinHandle -> IO (HieArgs TypeIndex) Source #
Binary (HieType TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> HieType TypeIndex -> IO () Source # put :: BinHandle -> HieType TypeIndex -> IO (Bin (HieType TypeIndex)) Source # get :: BinHandle -> IO (HieType TypeIndex) Source #
Binary (IdentifierDetails TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> IdentifierDetails TypeIndex -> IO () Source # put :: BinHandle -> IdentifierDetails TypeIndex -> IO (Bin (IdentifierDetails TypeIndex)) Source # get :: BinHandle -> IO (IdentifierDetails TypeIndex) Source #
Binary (NodeInfo TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> NodeInfo TypeIndex -> IO () Source # put :: BinHandle -> NodeInfo TypeIndex -> IO (Bin (NodeInfo TypeIndex)) Source # get :: BinHandle -> IO (NodeInfo TypeIndex) Source #
Binary (SourcedNodeInfo TypeIndex) Source # |
Instance details Defined in GHC.Iface.Ext.Types Methods put_ :: BinHandle -> SourcedNodeInfo TypeIndex -> IO () Source # put :: BinHandle -> SourcedNodeInfo TypeIndex -> IO (Bin (SourcedNodeInfo TypeIndex)) Source # get :: BinHandle -> IO (SourcedNodeInfo TypeIndex) Source #
Binary name => Binary (AnnTarget name) Source # |
Instance details Defined in GHC.Types.Annotations Methods put_ :: BinHandle -> AnnTarget name -> IO () Source # put :: BinHandle -> AnnTarget name -> IO (Bin (AnnTarget name)) Source # get :: BinHandle -> IO (AnnTarget name) Source #
Binary (DefMethSpec IfaceType) Source # |
Instance details Defined in GHC.Iface.Type Methods put_ :: BinHandle -> DefMethSpec IfaceType -> IO () Source # put :: BinHandle -> DefMethSpec IfaceType -> IO (Bin (DefMethSpec IfaceType)) Source # get :: BinHandle -> IO (DefMethSpec IfaceType) Source #
Binary unit => Binary (Definite unit) Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> Definite unit -> IO () Source # put :: BinHandle -> Definite unit -> IO (Bin (Definite unit)) Source # get :: BinHandle -> IO (Definite unit) Source #
Binary a => Binary (GenModule a) Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> GenModule a -> IO () Source # put :: BinHandle -> GenModule a -> IO (Bin (GenModule a)) Source # get :: BinHandle -> IO (GenModule a) Source #
Binary a => Binary (GenWithIsBoot a) Source # |
Instance details Defined in GHC.Unit.Types Methods put_ :: BinHandle -> GenWithIsBoot a -> IO () Source # put :: BinHandle -> GenWithIsBoot a -> IO (Bin (GenWithIsBoot a)) Source # get :: BinHandle -> IO (GenWithIsBoot a) Source #
Binary a => Binary (BinLocated a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> BinLocated a -> IO () Source # put :: BinHandle -> BinLocated a -> IO (Bin (BinLocated a)) Source # get :: BinHandle -> IO (BinLocated a) Source #
Binary (FixedLengthEncoding Word16) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word16 -> IO () Source # put :: BinHandle -> FixedLengthEncoding Word16 -> IO (Bin (FixedLengthEncoding Word16)) Source # get :: BinHandle -> IO (FixedLengthEncoding Word16) Source #
Binary (FixedLengthEncoding Word32) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word32 -> IO () Source # put :: BinHandle -> FixedLengthEncoding Word32 -> IO (Bin (FixedLengthEncoding Word32)) Source # get :: BinHandle -> IO (FixedLengthEncoding Word32) Source #
Binary (FixedLengthEncoding Word64) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word64 -> IO () Source # put :: BinHandle -> FixedLengthEncoding Word64 -> IO (Bin (FixedLengthEncoding Word64)) Source # get :: BinHandle -> IO (FixedLengthEncoding Word64) Source #
Binary (FixedLengthEncoding Word8) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FixedLengthEncoding Word8 -> IO () Source # put :: BinHandle -> FixedLengthEncoding Word8 -> IO (Bin (FixedLengthEncoding Word8)) Source # get :: BinHandle -> IO (FixedLengthEncoding Word8) Source #
Binary a => Binary (NonEmpty a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> NonEmpty a -> IO () Source # put :: BinHandle -> NonEmpty a -> IO (Bin (NonEmpty a)) Source # get :: BinHandle -> IO (NonEmpty a) Source #
Binary a => Binary (Ratio a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Ratio a -> IO () Source # put :: BinHandle -> Ratio a -> IO (Bin (Ratio a)) Source # get :: BinHandle -> IO (Ratio a) Source #
Binary a => Binary (Maybe a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Maybe a -> IO () Source # put :: BinHandle -> Maybe a -> IO (Bin (Maybe a)) Source # get :: BinHandle -> IO (Maybe a) Source #
Binary a => Binary [a] Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> [a] -> IO () Source # put :: BinHandle -> [a] -> IO (Bin [a]) Source # get :: BinHandle -> IO [a] Source #
Binary (EnumSet a) Source # | 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 () Source # put :: BinHandle -> EnumSet a -> IO (Bin (EnumSet a)) Source # get :: BinHandle -> IO (EnumSet a) Source #
Binary a => Binary (WithHsDocIdentifiers a GhcRn) Source # |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO () Source # put :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO (Bin (WithHsDocIdentifiers a GhcRn)) Source # get :: BinHandle -> IO (WithHsDocIdentifiers a GhcRn) Source #
(Binary r, Binary b) => Binary (IfaceBindingX b r) Source # |
Instance details Defined in GHC.Iface.Syntax Methods put_ :: BinHandle -> IfaceBindingX b r -> IO () Source # put :: BinHandle -> IfaceBindingX b r -> IO (Bin (IfaceBindingX b r)) Source # get :: BinHandle -> IO (IfaceBindingX b r) Source #
(Binary tv, Binary vis) => Binary (VarBndr tv vis) Source # |
Instance details Defined in GHC.Types.Var Methods put_ :: BinHandle -> VarBndr tv vis -> IO () Source # put :: BinHandle -> VarBndr tv vis -> IO (Bin (VarBndr tv vis)) Source # get :: BinHandle -> IO (VarBndr tv vis) Source #
Binary (Bin a) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Bin a -> IO () Source # put :: BinHandle -> Bin a -> IO (Bin (Bin a)) Source # get :: BinHandle -> IO (Bin a) Source #
(Ix a, Binary a, Binary b) => Binary (Array a b) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Array a b -> IO () Source # put :: BinHandle -> Array a b -> IO (Bin (Array a b)) Source # get :: BinHandle -> IO (Array a b) Source #
(Binary a, Binary b) => Binary (Either a b) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> Either a b -> IO () Source # put :: BinHandle -> Either a b -> IO (Bin (Either a b)) Source # get :: BinHandle -> IO (Either a b) Source #
Typeable a => Binary (TypeRep a) Source # |
Instance details Defined in GHC.Utils.Binary.Typeable Methods put_ :: BinHandle -> TypeRep a -> IO () Source # put :: BinHandle -> TypeRep a -> IO (Bin (TypeRep a)) Source # get :: BinHandle -> IO (TypeRep a) Source #
(Binary a, Binary b) => Binary (a, b) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b) -> IO () Source # put :: BinHandle -> (a, b) -> IO (Bin (a, b)) Source # get :: BinHandle -> IO (a, b) Source #
(Binary a, Binary b, Binary c) => Binary (a, b, c) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c) -> IO () Source # put :: BinHandle -> (a, b, c) -> IO (Bin (a, b, c)) Source # get :: BinHandle -> IO (a, b, c) Source #
(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d) -> IO () Source # put :: BinHandle -> (a, b, c, d) -> IO (Bin (a, b, c, d)) Source # get :: BinHandle -> IO (a, b, c, d) Source #
(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e) -> IO () Source # put :: BinHandle -> (a, b, c, d, e) -> IO (Bin (a, b, c, d, e)) Source # get :: BinHandle -> IO (a, b, c, d, e) Source #
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e, f) -> IO () Source # put :: BinHandle -> (a, b, c, d, e, f) -> IO (Bin (a, b, c, d, e, f)) Source # get :: BinHandle -> IO (a, b, c, d, e, f) Source #
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g) Source # |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> (a, b, c, d, e, f, g) -> IO () Source # put :: BinHandle -> (a, b, c, d, e, f, g) -> IO (Bin (a, b, c, d, e, f, g)) Source # get :: BinHandle -> IO (a, b, c, d, e, f, g) Source #

data BinHandle Source #

type SymbolTable = Array Int Name Source #

type Dictionary = Array Int FastString Source #

data BinData Source #

Constructors

BinData Int BinArray |

#### Instances

Instances details

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

dataHandle :: BinData -> IO BinHandle Source #

handleData :: BinHandle -> IO BinData Source #

unsafeUnpackBinBuffer :: ByteString -> IO BinHandle Source #

openBinMem :: Int -> IO BinHandle Source #

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

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

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

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

Get access to the underlying buffer.

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

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

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

readBinMem :: FilePath -> IO BinHandle Source #

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

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

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

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

"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 () Source #

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

Read a value stored using a forward reference

# For writing instances

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

getByte :: BinHandle -> IO Word8 Source #

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

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

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

Get a ByteString whose length is known

# Variable length encodings

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

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

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

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

# Fixed length encoding

newtype FixedLengthEncoding a Source #

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

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

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

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

Deserialize a value serialized by `lazyPutMaybe`.

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

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 Source #

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 Source #

setUserData :: BinHandle -> UserData -> BinHandle Source #

newReadState Source #

Arguments

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

newWriteState Source #

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 Source #

# String table ("dictionary")

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

getDictionary :: BinHandle -> IO Dictionary Source #

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

data FSTable Source #

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

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

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

# Newtype wrappers

newtype BinSpan Source #

Constructors

BinSpan |
Fields unBinSpan :: RealSrcSpan

#### Instances

Instances details

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

newtype BinSrcSpan Source #

Constructors

BinSrcSpan |
Fields unBinSrcSpan :: SrcSpan

#### Instances

Instances details

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

newtype BinLocated a Source #

Constructors

BinLocated |
Fields unBinLocated :: Located a

#### Instances

Instances details

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