Moduleghc-9.10.3GHC2021
GHC.Utils.Binary
- 11 types
- 1 class
- 41 values
- Packageghc-9.10.3
- Exports53
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceBinary.hs
Do not rely on instance sizes for general types, we use variable length encoding for many of them.
Instances238Binary, …
Binary ByteStringDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary IsOrphanDefined in ghc-9.10.3 · GHC.CoreBinary StrictnessMarkDefined in ghc-9.10.3 · GHC.Core.DataConBinary CallerCcFilterDefined in ghc-9.10.3 · GHC.Core.Opt.CallerCC.TypesBinary NamePatternDefined in ghc-9.10.3 · GHC.Core.Opt.CallerCC.TypesBinary CoSelDefined in ghc-9.10.3 · GHC.Core.TyCo.RepBinary InjectivityDefined in ghc-9.10.3 · GHC.Core.TyConBinary PrimElemRepDefined in ghc-9.10.3 · GHC.Core.TyConBinary PrimRepDefined in ghc-9.10.3 · GHC.Core.TyConBinary TyConBndrVisDefined in ghc-9.10.3 · GHC.Core.TyConBinary FastStringDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary LexicalFastStringDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary NonDetFastStringDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary LanguageDefined in ghc-9.10.3 · GHC.Driver.FlagsBinary DocStructureItemDefined in ghc-9.10.3 · GHC.Hs.DocBinary DocsDefined in ghc-9.10.3 · GHC.Hs.DocBinary HsDocStringDefined in ghc-9.10.3 · GHC.Hs.DocStringBinary HsDocStringChunkDefined in ghc-9.10.3 · GHC.Hs.DocStringBinary HsDocStringDecoratorDefined in ghc-9.10.3 · GHC.Hs.DocStringBinary ExtensibleFieldsDefined in ghc-9.10.3 · GHC.Iface.Ext.FieldsBinary BindTypeDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary ContextInfoDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary DeclTypeDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary EvBindDepsDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary EvVarSourceDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary HieFileDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary IETypeDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary NodeAnnotationDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary NodeOriginDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary RecFieldContextDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary ScopeDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary TyVarScopeDefined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary IfaceDeclExtrasDefined in ghc-9.10.3 · GHC.Iface.RecompBinary IfaceIdExtrasDefined in ghc-9.10.3 · GHC.Iface.RecompBinary IfGuidanceDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceATDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceAltDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceAnnotationDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceAxBranchDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceBangDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceBooleanFormulaDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceClassOpDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceClsInstDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceCompleteMatchDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceConAltDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceConDeclDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceConDeclsDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceDeclDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceExprDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceFamInstDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceFamTyConFlavDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceIdDetailsDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceInfoItemDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceLFInfoDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceLetBndrDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceMaybeRhsDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceRuleDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceSrcBangDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceStringLiteralDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceTickishDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceTopBndrInfoDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceTyConParentDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceUnfoldingDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceWarningTxtDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceWarningsDefined in ghc-9.10.3 · GHC.Iface.SyntaxBinary IfaceAppArgsDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceBndrDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceCoercionDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceMCoercionDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceOneShotDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceTyConDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceTyConInfoDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceTyConSortDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceTyLitDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceTypeDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IfaceUnivCoProvDefined in ghc-9.10.3 · GHC.Iface.TypeBinary IdentDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary AOpDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary JExprDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary JStatDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary JValDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary OpDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary UOpDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary TagInfoDefined in ghc-9.10.3 · GHC.Stg.InferTags.TagSigBinary TagSigDefined in ghc-9.10.3 · GHC.Stg.InferTags.TagSigBinary BlockDepsDefined in ghc-9.10.3 · GHC.StgToJS.ObjectBinary BlockInfoDefined in ghc-9.10.3 · GHC.StgToJS.ObjectBinary ExportedFunDefined in ghc-9.10.3 · GHC.StgToJS.ObjectBinary IndexEntryDefined in ghc-9.10.3 · GHC.StgToJS.ObjectBinary JSOptionsDefined in ghc-9.10.3 · GHC.StgToJS.ObjectBinary CILayoutDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary CIRegsDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary CIStaticDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary CITypeDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary ClosureInfoDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary ExpFunDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary ForeignJSRefDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary JSFFITypeDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary JSRepDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary StaticArgDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary StaticInfoDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary StaticLitDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary StaticUnboxedDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary StaticValDefined in ghc-9.10.3 · GHC.StgToJS.Object · orphanBinary AvailInfoDefined in ghc-9.10.3 · GHC.Types.AvailBinary ActivationDefined in ghc-9.10.3 · GHC.Types.BasicBinary CbvMarkDefined in ghc-9.10.3 · GHC.Types.BasicBinary FunctionOrDataDefined in ghc-9.10.3 · GHC.Types.BasicBinary InlinePragmaDefined in ghc-9.10.3 · GHC.Types.BasicBinary InlineSpecDefined in ghc-9.10.3 · GHC.Types.BasicBinary LeftOrRightDefined in ghc-9.10.3 · GHC.Types.BasicBinary LevityDefined in ghc-9.10.3 · GHC.Types.BasicBinary OverlapFlagDefined in ghc-9.10.3 · GHC.Types.BasicBinary OverlapModeDefined in ghc-9.10.3 · GHC.Types.BasicBinary RecFlagDefined in ghc-9.10.3 · GHC.Types.BasicBinary RuleMatchInfoDefined in ghc-9.10.3 · GHC.Types.BasicBinary TupleSortDefined in ghc-9.10.3 · GHC.Types.BasicBinary UnfoldingSourceDefined in ghc-9.10.3 · GHC.Types.BasicBinary CCFlavourDefined in ghc-9.10.3 · GHC.Types.CostCentreBinary CostCentreDefined in ghc-9.10.3 · GHC.Types.CostCentreBinary CostCentreIndexDefined in ghc-9.10.3 · GHC.Types.CostCentre.StateBinary CprDefined in ghc-9.10.3 · GHC.Types.CprBinary CprSigDefined in ghc-9.10.3 · GHC.Types.CprBinary CprTypeDefined in ghc-9.10.3 · GHC.Types.CprBinary CardDefined in ghc-9.10.3 · GHC.Types.DemandBinary DemandDefined in ghc-9.10.3 · GHC.Types.DemandBinary DivergenceDefined in ghc-9.10.3 · GHC.Types.DemandBinary DmdEnvDefined in ghc-9.10.3 · GHC.Types.DemandBinary DmdSigDefined in ghc-9.10.3 · GHC.Types.DemandBinary DmdTypeDefined in ghc-9.10.3 · GHC.Types.DemandBinary SubDemandDefined in ghc-9.10.3 · GHC.Types.DemandBinary DuplicateRecordFieldsDefined in ghc-9.10.3 · GHC.Types.FieldLabelBinary FieldSelectorsDefined in ghc-9.10.3 · GHC.Types.FieldLabelBinary FixityDefined in ghc-9.10.3 · GHC.Types.FixityBinary FixityDirectionDefined in ghc-9.10.3 · GHC.Types.FixityBinary CCallConvDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary CCallSpecDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary CCallTargetDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary CExportSpecDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary CTypeDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary ForeignCallDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary HeaderDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary SafetyDefined in ghc-9.10.3 · GHC.Types.ForeignCallBinary LitNumTypeDefined in ghc-9.10.3 · GHC.Types.LiteralBinary LiteralDefined in ghc-9.10.3 · GHC.Types.LiteralBinary Name => Binary FieldLabelDefined in ghc-9.10.3 · GHC.Types.FieldLabelWe need the
Binary Nameconstraint 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.Binary NameDefined in ghc-9.10.3 · GHC.Types.NameAssumes that the Name is a non-binding one. See putIfaceTopBndr and getIfaceTopBndr for serializing binding Names. See UserData for the rationale for this distinction.
Binary NameSpaceDefined in ghc-9.10.3 · GHC.Types.Name.OccurrenceBinary OccNameDefined in ghc-9.10.3 · GHC.Types.Name.OccurrenceBinary IfaceTrustInfoDefined in ghc-9.10.3 · GHC.Types.SafeHaskellBinary SaneDoubleDefined in ghc-9.10.3 · GHC.Types.SaneDoubleBinary HscSourceDefined in ghc-9.10.3 · GHC.Types.SourceFileBinary SourceTextDefined in ghc-9.10.3 · GHC.Types.SourceTextBinary UnhelpfulSpanReasonDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary ForAllTyFlagDefined in ghc-9.10.3 · GHC.Types.VarBinary FunTyFlagDefined in ghc-9.10.3 · GHC.Types.VarBinary SpecificityDefined in ghc-9.10.3 · GHC.Types.VarBinary DependenciesDefined in ghc-9.10.3 · GHC.Unit.Module.DepsBinary UsageDefined in ghc-9.10.3 · GHC.Unit.Module.DepsBinary ModIfaceDefined in ghc-9.10.3 · GHC.Unit.Module.ModIfaceBinary WarningCategoryDefined in ghc-9.10.3 · GHC.Unit.Module.WarningsBinary InstantiatedUnitDefined in ghc-9.10.3 · GHC.Unit.TypesBinary UnitDefined in ghc-9.10.3 · GHC.Unit.TypesBinary UnitIdDefined in ghc-9.10.3 · GHC.Unit.TypesBinary BinDataDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary BinSpanDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary BinSrcSpanDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary JoinPointHoodDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary BoxityDefined in ghc-9.10.3 · GHC.Types.Basic · orphanBinary RoleDefined in ghc-9.10.3 · GHC.Core.Coercion.Axiom · orphanBinary SrcStrictnessDefined in ghc-9.10.3 · GHC.Core.DataCon · orphanBinary SrcUnpackednessDefined in ghc-9.10.3 · GHC.Core.DataCon · orphanBinary IsBootInterfaceDefined in ghc-9.10.3 · GHC.Unit.Types · orphanBinary ModuleNameDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary PromotionFlagDefined in ghc-9.10.3 · GHC.Types.Basic · orphanBinary IntegerDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary SerializedDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary SomeTypeRepDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary FingerprintDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary Int16Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Int32Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Int64Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Int8Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Word16Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Word32Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Word64Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary Word8Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary BoolDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary CharDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary IntDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary KindRepDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary RuntimeRepDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary TyConDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary TypeLitSortDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary VecCountDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary VecElemDefined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphanBinary DayDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary DiffTimeDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary UTCTimeDefined in ghc-9.10.3 · GHC.Utils.BinaryBinary ()Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (HieAST TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (HieASTs TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (HieArgs TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (HieType TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (IdentifierDetails TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (NodeInfo TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (SourcedNodeInfo TypeIndex)Defined in ghc-9.10.3 · GHC.Iface.Ext.TypesBinary (DefMethSpec IfaceType)Defined in ghc-9.10.3 · GHC.Iface.TypeBinary (FixedLengthEncoding Word16)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word32)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word64)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word8)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (Maybe a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (GenModule a)Defined in ghc-9.10.3 · GHC.Unit.TypesBinary a => Binary (GenWithIsBoot a)Defined in ghc-9.10.3 · GHC.Unit.TypesBinary a => Binary (BinLocated a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (NonEmpty a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (Maybe a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (Ratio a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary [a]Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary name => Binary (AnnTarget name)Defined in ghc-9.10.3 · GHC.Types.AnnotationsBinary unit => Binary (Definite unit)Defined in ghc-9.10.3 · GHC.Unit.TypesBinary v => Binary (IntMap v)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Ord a) => Binary (Set a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (EnumSet a)Defined in ghc-9.10.3 · GHC.Data.EnumSetRepresents 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.
Binary (Bin a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary a => Binary (WithHsDocIdentifiers a GhcRn)Defined in ghc-9.10.3 · GHC.Hs.DocTypeable a => Binary (TypeRep a)Defined in ghc-9.10.3 · GHC.Utils.Binary.Typeable · orphan(Binary a, Binary b) => Binary (Either a b)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b) => Binary (a, b)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary r, Binary b) => Binary (IfaceBindingX b r)Defined in ghc-9.10.3 · GHC.Iface.Syntax(Binary tv, Binary vis) => Binary (VarBndr tv vis)Defined in ghc-9.10.3 · GHC.Types.Var(Ix a, Binary a, Binary b) => Binary (Array a b)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b, Binary c) => Binary (a, b, c)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f)Defined in ghc-9.10.3 · GHC.Utils.Binary(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g)Defined in ghc-9.10.3 · GHC.Utils.Binary
Get access to the underlying buffer.
"forwardPut put_A put_B" outputs A after B but allows A to be read before B by using a forward reference
Read a value stored using a forward reference
For writing instances
4 declarationsPut a ByteString without its length (can't be read back without knowing the length!)
Get a ByteString whose length is known
Variable length encodings
4 declarationsFixed length encoding
1 declarationEncode 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
Instances7Eq, Ord, Show, Binary, …
Eq a => Eq (FixedLengthEncoding a)Defined in ghc-9.10.3 · GHC.Utils.BinaryOrd a => Ord (FixedLengthEncoding a)Defined in ghc-9.10.3 · GHC.Utils.BinaryShow a => Show (FixedLengthEncoding a)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word16)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word32)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word64)Defined in ghc-9.10.3 · GHC.Utils.BinaryBinary (FixedLengthEncoding Word8)Defined in ghc-9.10.3 · GHC.Utils.Binary
Lazy Binary I/O
4 declarationsDeserialize a value serialized by lazyPutMaybe.
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
6 declarationsInformation we keep around during interface file serialization/deserialization. Namely we keep the functions for serializing and deserializing Names and FastStrings. 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
UserDataud_get_name :: BinHandle -> IO Nameud_get_fs :: BinHandle -> IO FastStringud_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 ()
newReadState String table ("dictionary")
7 declarationsNewtype wrappers
3 declarationsConstructors
Constructors
Instances1Binary
Binary BinSrcSpanDefined in ghc-9.10.3 · GHC.Utils.Binary
Constructors
Instances1Binary
Binary a => Binary (BinLocated a)Defined in ghc-9.10.3 · GHC.Utils.Binary