Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- module GHC.Iface.Type
- data IfaceDecl
- = IfaceId { }
- | IfaceData { }
- | IfaceSynonym {
- ifName :: IfaceTopBndr
- ifRoles :: [Role]
- ifBinders :: [IfaceTyConBinder]
- ifResKind :: IfaceKind
- ifSynRhs :: IfaceType
- | IfaceFamily { }
- | IfaceClass {
- ifName :: IfaceTopBndr
- ifRoles :: [Role]
- ifBinders :: [IfaceTyConBinder]
- ifFDs :: [FunDep IfLclName]
- ifBody :: IfaceClassBody
- | IfaceAxiom {
- ifName :: IfaceTopBndr
- ifTyCon :: IfaceTyCon
- ifRole :: Role
- ifAxBranches :: [IfaceAxBranch]
- | IfacePatSyn {
- ifName :: IfaceTopBndr
- ifPatIsInfix :: Bool
- ifPatMatcher :: (IfExtName, Bool)
- ifPatBuilder :: Maybe (IfExtName, Bool)
- ifPatUnivBndrs :: [IfaceForAllSpecBndr]
- ifPatExBndrs :: [IfaceForAllSpecBndr]
- ifPatProvCtxt :: IfaceContext
- ifPatReqCtxt :: IfaceContext
- ifPatArgs :: [IfaceType]
- ifPatTy :: IfaceType
- ifFieldLabels :: [FieldLabel]
- data IfaceFamTyConFlav
- data IfaceClassOp = IfaceClassOp IfaceTopBndr IfaceType (Maybe (DefMethSpec IfaceType))
- data IfaceAT = IfaceAT IfaceDecl (Maybe IfaceType)
- data IfaceConDecl = IfCon {
- ifConName :: IfaceTopBndr
- ifConWrapper :: Bool
- ifConInfix :: Bool
- ifConExTCvs :: [IfaceBndr]
- ifConUserTvBinders :: [IfaceForAllSpecBndr]
- ifConEqSpec :: IfaceEqSpec
- ifConCtxt :: IfaceContext
- ifConArgTys :: [(IfaceMult, IfaceType)]
- ifConFields :: [FieldLabel]
- ifConStricts :: [IfaceBang]
- ifConSrcStricts :: [IfaceSrcBang]
- data IfaceConDecls
- type IfaceEqSpec = [(IfLclName, IfaceType)]
- data IfaceExpr
- = IfaceLcl IfLclName
- | IfaceExt IfExtName
- | IfaceType IfaceType
- | IfaceCo IfaceCoercion
- | IfaceTuple TupleSort [IfaceExpr]
- | IfaceLam IfaceLamBndr IfaceExpr
- | IfaceApp IfaceExpr IfaceExpr
- | IfaceCase IfaceExpr IfLclName [IfaceAlt]
- | IfaceECase IfaceExpr IfaceType
- | IfaceLet IfaceBinding IfaceExpr
- | IfaceCast IfaceExpr IfaceCoercion
- | IfaceLit Literal
- | IfaceFCall ForeignCall IfaceType
- | IfaceTick IfaceTickish IfaceExpr
- data IfaceAlt = IfaceAlt IfaceConAlt [IfLclName] IfaceExpr
- data IfaceLetBndr = IfLetBndr IfLclName IfaceType IfaceIdInfo IfaceJoinInfo
- data IfaceJoinInfo
- data IfaceBinding
- data IfaceConAlt
- type IfaceIdInfo = [IfaceInfoItem]
- data IfaceIdDetails
- data IfaceUnfolding
- data IfaceInfoItem
- data IfaceRule = IfaceRule {}
- data IfaceAnnotation = IfaceAnnotation {}
- type IfaceAnnTarget = AnnTarget OccName
- data IfaceClsInst = IfaceClsInst {}
- data IfaceFamInst = IfaceFamInst {}
- data IfaceTickish
- data IfaceClassBody
- = IfAbstractClass
- | IfConcreteClass {
- ifClassCtxt :: IfaceContext
- ifATs :: [IfaceAT]
- ifSigs :: [IfaceClassOp]
- ifMinDef :: BooleanFormula IfLclName
- data IfaceBang
- data IfaceSrcBang = IfSrcBang SrcUnpackedness SrcStrictness
- data SrcUnpackedness
- data SrcStrictness
- data IfaceAxBranch = IfaceAxBranch {
- ifaxbTyVars :: [IfaceTvBndr]
- ifaxbEtaTyVars :: [IfaceTvBndr]
- ifaxbCoVars :: [IfaceIdBndr]
- ifaxbLHS :: IfaceAppArgs
- ifaxbRoles :: [Role]
- ifaxbRHS :: IfaceType
- ifaxbIncomps :: [BranchIndex]
- data IfaceTyConParent
- data IfaceCompleteMatch = IfaceCompleteMatch [IfExtName] (Maybe IfaceTyCon)
- data IfaceLFInfo
- = IfLFReEntrant !RepArity
- | IfLFThunk !Bool !Bool
- | IfLFCon !Name
- | IfLFUnknown !Bool
- | IfLFUnlifted
- type IfaceTopBndr = Name
- putIfaceTopBndr :: BinHandle -> IfaceTopBndr -> IO ()
- getIfaceTopBndr :: BinHandle -> IO IfaceTopBndr
- ifaceDeclImplicitBndrs :: IfaceDecl -> [OccName]
- visibleIfConDecls :: IfaceConDecls -> [IfaceConDecl]
- ifaceDeclFingerprints :: Fingerprint -> IfaceDecl -> [(OccName, Fingerprint)]
- freeNamesIfDecl :: IfaceDecl -> NameSet
- freeNamesIfRule :: IfaceRule -> NameSet
- freeNamesIfFamInst :: IfaceFamInst -> NameSet
- pprIfaceExpr :: (SDoc -> SDoc) -> IfaceExpr -> SDoc
- pprIfaceDecl :: ShowSub -> IfaceDecl -> SDoc
- newtype AltPpr = AltPpr (Maybe (OccName -> SDoc))
- data ShowSub = ShowSub {}
- data ShowHowMuch
- showToIface :: ShowSub
- showToHeader :: ShowSub
Documentation
module GHC.Iface.Type
data IfaceFamTyConFlav Source #
IfaceDataFamilyTyCon | |
IfaceOpenSynFamilyTyCon | |
IfaceClosedSynFamilyTyCon (Maybe (IfExtName, [IfaceAxBranch])) | Name of associated axiom and branches for pretty printing purposes,
or |
IfaceAbstractClosedSynFamilyTyCon | |
IfaceBuiltInSynFamTyCon |
Instances
NFData IfaceFamTyConFlav Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceFamTyConFlav -> () Source # | |
Binary IfaceFamTyConFlav Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceFamTyConFlav -> IO () Source # put :: BinHandle -> IfaceFamTyConFlav -> IO (Bin IfaceFamTyConFlav) Source # |
data IfaceClassOp Source #
Instances
NFData IfaceClassOp Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceClassOp -> () Source # | |
NamedThing IfaceClassOp Source # | |
Defined in GHC.Iface.Syntax getOccName :: IfaceClassOp -> OccName Source # getName :: IfaceClassOp -> Name Source # | |
HasOccName IfaceClassOp Source # | |
Defined in GHC.Iface.Syntax occName :: IfaceClassOp -> OccName Source # | |
Binary IfaceClassOp Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceClassOp -> IO () Source # put :: BinHandle -> IfaceClassOp -> IO (Bin IfaceClassOp) Source # | |
Outputable IfaceClassOp Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceClassOp -> SDoc Source # |
data IfaceConDecl Source #
IfCon | |
|
Instances
NFData IfaceConDecl Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceConDecl -> () Source # | |
NamedThing IfaceConDecl Source # | |
Defined in GHC.Iface.Syntax getOccName :: IfaceConDecl -> OccName Source # getName :: IfaceConDecl -> Name Source # | |
HasOccName IfaceConDecl Source # | |
Defined in GHC.Iface.Syntax occName :: IfaceConDecl -> OccName Source # | |
Binary IfaceConDecl Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceConDecl -> IO () Source # put :: BinHandle -> IfaceConDecl -> IO (Bin IfaceConDecl) Source # |
data IfaceConDecls Source #
Instances
NFData IfaceConDecls Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceConDecls -> () Source # | |
Binary IfaceConDecls Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceConDecls -> IO () Source # put :: BinHandle -> IfaceConDecls -> IO (Bin IfaceConDecls) Source # |
type IfaceEqSpec = [(IfLclName, IfaceType)] Source #
data IfaceLetBndr Source #
Instances
NFData IfaceLetBndr Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceLetBndr -> () Source # | |
Binary IfaceLetBndr Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceLetBndr -> IO () Source # put :: BinHandle -> IfaceLetBndr -> IO (Bin IfaceLetBndr) Source # |
data IfaceJoinInfo Source #
Instances
NFData IfaceJoinInfo Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceJoinInfo -> () Source # | |
Binary IfaceJoinInfo Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceJoinInfo -> IO () Source # put :: BinHandle -> IfaceJoinInfo -> IO (Bin IfaceJoinInfo) Source # | |
Outputable IfaceJoinInfo Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceJoinInfo -> SDoc Source # |
data IfaceBinding Source #
Instances
NFData IfaceBinding Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceBinding -> () Source # | |
Binary IfaceBinding Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceBinding -> IO () Source # put :: BinHandle -> IfaceBinding -> IO (Bin IfaceBinding) Source # |
data IfaceConAlt Source #
Instances
NFData IfaceConAlt Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceConAlt -> () Source # | |
Binary IfaceConAlt Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceConAlt -> IO () Source # put :: BinHandle -> IfaceConAlt -> IO (Bin IfaceConAlt) Source # | |
Outputable IfaceConAlt Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceConAlt -> SDoc Source # |
type IfaceIdInfo = [IfaceInfoItem] Source #
data IfaceIdDetails Source #
Instances
NFData IfaceIdDetails Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceIdDetails -> () Source # | |
Binary IfaceIdDetails Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceIdDetails -> IO () Source # put :: BinHandle -> IfaceIdDetails -> IO (Bin IfaceIdDetails) Source # | |
Outputable IfaceIdDetails Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceIdDetails -> SDoc Source # |
data IfaceUnfolding Source #
IfCoreUnfold Bool IfaceExpr | |
IfCompulsory IfaceExpr | |
IfInlineRule Arity Bool Bool IfaceExpr | |
IfDFunUnfold [IfaceBndr] [IfaceExpr] |
Instances
NFData IfaceUnfolding Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceUnfolding -> () Source # | |
Binary IfaceUnfolding Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceUnfolding -> IO () Source # put :: BinHandle -> IfaceUnfolding -> IO (Bin IfaceUnfolding) Source # | |
Outputable IfaceUnfolding Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceUnfolding -> SDoc Source # |
data IfaceInfoItem Source #
HsArity Arity | |
HsStrictness StrictSig | |
HsCpr CprSig | |
HsInline InlinePragma | |
HsUnfold Bool IfaceUnfolding | |
HsNoCafRefs | |
HsLevity | |
HsLFInfo IfaceLFInfo |
Instances
NFData IfaceInfoItem Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceInfoItem -> () Source # | |
Binary IfaceInfoItem Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceInfoItem -> IO () Source # put :: BinHandle -> IfaceInfoItem -> IO (Bin IfaceInfoItem) Source # | |
Outputable IfaceInfoItem Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceInfoItem -> SDoc Source # |
IfaceRule | |
|
data IfaceAnnotation Source #
Instances
NFData IfaceAnnotation Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceAnnotation -> () Source # | |
Binary IfaceAnnotation Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceAnnotation -> IO () Source # put :: BinHandle -> IfaceAnnotation -> IO (Bin IfaceAnnotation) Source # | |
Outputable IfaceAnnotation Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceAnnotation -> SDoc Source # |
type IfaceAnnTarget = AnnTarget OccName Source #
data IfaceClsInst Source #
IfaceClsInst | |
|
Instances
NFData IfaceClsInst Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceClsInst -> () Source # | |
Binary IfaceClsInst Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceClsInst -> IO () Source # put :: BinHandle -> IfaceClsInst -> IO (Bin IfaceClsInst) Source # | |
Outputable IfaceClsInst Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceClsInst -> SDoc Source # |
data IfaceFamInst Source #
Instances
NFData IfaceFamInst Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceFamInst -> () Source # | |
Binary IfaceFamInst Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceFamInst -> IO () Source # put :: BinHandle -> IfaceFamInst -> IO (Bin IfaceFamInst) Source # | |
Outputable IfaceFamInst Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceFamInst -> SDoc Source # |
data IfaceTickish Source #
Instances
NFData IfaceTickish Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceTickish -> () Source # | |
Binary IfaceTickish Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceTickish -> IO () Source # put :: BinHandle -> IfaceTickish -> IO (Bin IfaceTickish) Source # |
data IfaceClassBody Source #
IfAbstractClass | |
IfConcreteClass | |
|
Instances
NFData IfaceClassBody Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceClassBody -> () Source # |
This corresponds to an HsImplBang; that is, the final implementation decision about the data constructor arg
data IfaceSrcBang Source #
This corresponds to HsSrcBang
Instances
NFData IfaceSrcBang Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceSrcBang -> () Source # | |
Binary IfaceSrcBang Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceSrcBang -> IO () Source # put :: BinHandle -> IfaceSrcBang -> IO (Bin IfaceSrcBang) Source # |
data SrcUnpackedness Source #
Source Unpackedness
What unpackedness the user requested
SrcUnpack | {-# UNPACK #-} specified |
SrcNoUnpack | {-# NOUNPACK #-} specified |
NoSrcUnpack | no unpack pragma |
Instances
data SrcStrictness Source #
Source Strictness
What strictness annotation the user wrote
SrcLazy | Lazy, ie |
SrcStrict | Strict, ie |
NoSrcStrict | no strictness annotation |
Instances
data IfaceAxBranch Source #
IfaceAxBranch | |
|
Instances
NFData IfaceAxBranch Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceAxBranch -> () Source # | |
Binary IfaceAxBranch Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceAxBranch -> IO () Source # put :: BinHandle -> IfaceAxBranch -> IO (Bin IfaceAxBranch) Source # |
data IfaceTyConParent Source #
Instances
NFData IfaceTyConParent Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceTyConParent -> () Source # | |
Binary IfaceTyConParent Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceTyConParent -> IO () Source # put :: BinHandle -> IfaceTyConParent -> IO (Bin IfaceTyConParent) Source # | |
Outputable IfaceTyConParent Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceTyConParent -> SDoc Source # |
data IfaceCompleteMatch Source #
Instances
NFData IfaceCompleteMatch Source # | |
Defined in GHC.Iface.Syntax rnf :: IfaceCompleteMatch -> () Source # | |
Binary IfaceCompleteMatch Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceCompleteMatch -> IO () Source # put :: BinHandle -> IfaceCompleteMatch -> IO (Bin IfaceCompleteMatch) Source # | |
Outputable IfaceCompleteMatch Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceCompleteMatch -> SDoc Source # |
data IfaceLFInfo Source #
Iface type for LambdaFormInfo. Fields not relevant for imported Ids are omitted in this type.
Instances
Binary IfaceLFInfo Source # | |
Defined in GHC.Iface.Syntax put_ :: BinHandle -> IfaceLFInfo -> IO () Source # put :: BinHandle -> IfaceLFInfo -> IO (Bin IfaceLFInfo) Source # | |
Outputable IfaceLFInfo Source # | |
Defined in GHC.Iface.Syntax ppr :: IfaceLFInfo -> SDoc Source # |
Binding names
type IfaceTopBndr = Name Source #
putIfaceTopBndr :: BinHandle -> IfaceTopBndr -> IO () Source #
ifaceDeclImplicitBndrs :: IfaceDecl -> [OccName] Source #
ifaceDeclFingerprints :: Fingerprint -> IfaceDecl -> [(OccName, Fingerprint)] Source #
freeNamesIfDecl :: IfaceDecl -> NameSet Source #
freeNamesIfRule :: IfaceRule -> NameSet Source #
pprIfaceExpr :: (SDoc -> SDoc) -> IfaceExpr -> SDoc Source #
Pretty Print an IfaceExpr
The first argument should be a function that adds parens in context that need an atomic value (e.g. function args)
data ShowHowMuch Source #
ShowHeader AltPpr | Header information only, not rhs |
ShowSome [OccName] AltPpr | Show only some sub-components. Specifically,
|
ShowIface | Everything including GHC-internal information (used in --show-iface) |
Instances
Outputable ShowHowMuch Source # | |
Defined in GHC.Iface.Syntax ppr :: ShowHowMuch -> SDoc Source # |