ghc-7.0.3: The GHC API

IfaceSyn

# Documentation

module IfaceType

data IfaceDecl Source

Constructors

IfaceId |

Fields

ifName :: OccName
ifType :: IfaceType
ifIdDetails :: IfaceIdDetails
ifIdInfo :: IfaceIdInfo

IfaceData |

Fields

ifName :: OccName
ifTyVars :: [IfaceTvBndr]
ifCtxt :: IfaceContext
ifCons :: IfaceConDecls
ifRec :: RecFlag
ifGadtSyntax :: Bool
ifGeneric :: Bool
ifFamInst :: Maybe (IfaceTyCon, [IfaceType])

IfaceSyn |

Fields

ifName :: OccName
ifTyVars :: [IfaceTvBndr]
ifSynKind :: IfaceKind
ifSynRhs :: Maybe IfaceType
ifFamInst :: Maybe (IfaceTyCon, [IfaceType])

IfaceClass |

Fields

ifCtxt :: IfaceContext
ifName :: OccName
ifTyVars :: [IfaceTvBndr]
ifFDs :: [FunDep FastString]
ifATs :: [IfaceDecl]
ifSigs :: [IfaceClassOp]
ifRec :: RecFlag

IfaceForeign |

Fields

ifName :: OccName
ifExtName :: Maybe FastString

Instances

Outputable IfaceDecl |
Binary IfaceDecl |

data IfaceClassOp Source

Constructors

IfaceClassOp OccName DefMethSpec IfaceType |

Instances

Outputable IfaceClassOp |
Binary IfaceClassOp |

data IfaceConDecl Source

Constructors

IfCon |

Fields

ifConOcc :: OccName
ifConWrapper :: Bool
ifConInfix :: Bool
ifConUnivTvs :: [IfaceTvBndr]
ifConExTvs :: [IfaceTvBndr]
ifConEqSpec :: [(OccName, IfaceType)]
ifConCtxt :: IfaceContext
ifConArgTys :: [IfaceType]
ifConFields :: [OccName]
ifConStricts :: [HsBang]

Instances

Binary IfaceConDecl |

data IfaceConDecls Source

Constructors

IfAbstractTyCon |
IfOpenDataTyCon |
IfDataTyCon [IfaceConDecl] |
IfNewTyCon IfaceConDecl |

Instances

Binary IfaceConDecls |

data IfaceExpr Source

Constructors

IfaceLcl IfLclName |
IfaceExt IfExtName |
IfaceType IfaceType |
IfaceTuple Boxity [IfaceExpr] |
IfaceLam IfaceBndr IfaceExpr |
IfaceApp IfaceExpr IfaceExpr |
IfaceCase IfaceExpr IfLclName IfaceType [IfaceAlt] |
IfaceLet IfaceBinding IfaceExpr |
IfaceNote IfaceNote IfaceExpr |
IfaceCast IfaceExpr IfaceCoercion |
IfaceLit Literal |
IfaceFCall ForeignCall IfaceType |
IfaceTick Module Int |

Instances

Outputable IfaceExpr |
Binary IfaceExpr |
Binary (DFunArg IfaceExpr) |

type IfaceAlt = (IfaceConAlt, [IfLclName], IfaceExpr)Source

data IfaceNote Source

Constructors

IfaceSCC CostCentre |
IfaceCoreNote String |

Instances

Outputable IfaceNote |
Binary IfaceNote |

data IfaceLetBndr Source

Constructors

IfLetBndr IfLclName IfaceType IfaceIdInfo |

Instances

Binary IfaceLetBndr |

data IfaceBinding Source

Constructors

IfaceNonRec IfaceLetBndr IfaceExpr |
IfaceRec [(IfaceLetBndr, IfaceExpr)] |

Instances

Binary IfaceBinding |

data IfaceConAlt Source

Constructors

IfaceDefault |
IfaceDataAlt IfExtName |
IfaceTupleAlt Boxity |
IfaceLitAlt Literal |

Instances

Outputable IfaceConAlt |
Binary IfaceConAlt |

data IfaceIdInfo Source

Constructors

NoInfo |
HasInfo [IfaceInfoItem] |

Instances

Outputable IfaceIdInfo |
Binary IfaceIdInfo |

data IfaceIdDetails Source

Constructors

IfVanillaId |
IfRecSelId IfaceTyCon Bool |
IfDFunId Int |

Instances

Outputable IfaceIdDetails |
Binary IfaceIdDetails |

data IfaceUnfolding Source

Constructors

IfCoreUnfold Bool IfaceExpr |
IfCompulsory IfaceExpr |
IfInlineRule Arity Bool Bool IfaceExpr |
IfExtWrapper Arity IfExtName |
IfLclWrapper Arity IfLclName |
IfDFunUnfold [DFunArg IfaceExpr] |

Instances

Outputable IfaceUnfolding |
Binary IfaceUnfolding |

data IfaceInfoItem Source

Constructors

HsArity Arity |
HsStrictness StrictSig |
HsInline InlinePragma |
HsUnfold Bool IfaceUnfolding |
HsNoCafRefs |

Instances

Outputable IfaceInfoItem |
Binary IfaceInfoItem |

data IfaceRule Source

Constructors

IfaceRule |

Fields

ifRuleName :: RuleName
ifActivation :: Activation
ifRuleBndrs :: [IfaceBndr]
ifRuleHead :: IfExtName
ifRuleArgs :: [IfaceExpr]
ifRuleRhs :: IfaceExpr
ifRuleAuto :: Bool
ifRuleOrph :: Maybe OccName

Instances

Outputable IfaceRule |
Binary IfaceRule |

data IfaceAnnotation Source

Constructors

IfaceAnnotation |

Fields

ifAnnotatedTarget :: IfaceAnnTarget
ifAnnotatedValue :: Serialized

Instances

Binary IfaceAnnotation |

type IfaceAnnTarget = AnnTarget OccName Source

data IfaceInst Source

Constructors

IfaceInst |

Fields

ifInstCls :: IfExtName
ifInstTys :: [Maybe IfaceTyCon]
ifDFun :: IfExtName
ifOFlag :: OverlapFlag
ifInstOrph :: Maybe OccName

Instances

Outputable IfaceInst |
Binary IfaceInst |

data IfaceFamInst Source

Constructors

IfaceFamInst |

Fields

ifFamInstFam :: IfExtName
ifFamInstTys :: [Maybe IfaceTyCon]
ifFamInstTyCon :: IfaceTyCon

Instances

Outputable IfaceFamInst |
Binary IfaceFamInst |

ifaceDeclSubBndrs :: IfaceDecl -> [OccName]Source

visibleIfConDecls :: IfaceConDecls -> [IfaceConDecl]Source

freeNamesIfDecl :: IfaceDecl -> NameSet Source

freeNamesIfRule :: IfaceRule -> NameSet Source

pprIfaceExpr :: (SDoc -> SDoc) -> IfaceExpr -> SDoc Source

pprIfaceDeclHead :: IfaceContext -> OccName -> [IfaceTvBndr] -> SDoc Source