IfaceSyn

ghc-7.0.4: The GHC API

IfaceSyn

# Documentation

module IfaceType

data IfaceDecl

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

Constructors

IfaceClassOp OccName DefMethSpec IfaceType |

Instances

Outputable IfaceClassOp |
Binary IfaceClassOp |

data IfaceConDecl

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

Constructors

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

Instances

Binary IfaceConDecls |

data IfaceExpr

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)

data IfaceNote

Constructors

IfaceSCC CostCentre |
IfaceCoreNote String |

Instances

Outputable IfaceNote |
Binary IfaceNote |

data IfaceLetBndr

Constructors

IfLetBndr IfLclName IfaceType IfaceIdInfo |

Instances

Binary IfaceLetBndr |

data IfaceBinding

Constructors

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

Instances

Binary IfaceBinding |

data IfaceConAlt

Constructors

IfaceDefault |
IfaceDataAlt IfExtName |
IfaceTupleAlt Boxity |
IfaceLitAlt Literal |

Instances

Outputable IfaceConAlt |
Binary IfaceConAlt |

data IfaceIdInfo

Constructors

NoInfo |
HasInfo [IfaceInfoItem] |

Instances

Outputable IfaceIdInfo |
Binary IfaceIdInfo |

data IfaceIdDetails

Constructors

IfVanillaId |
IfRecSelId IfaceTyCon Bool |
IfDFunId Int |

Instances

Outputable IfaceIdDetails |
Binary IfaceIdDetails |

data IfaceUnfolding

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

Constructors

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

Instances

Outputable IfaceInfoItem |
Binary IfaceInfoItem |

data IfaceRule

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

Constructors

IfaceAnnotation |
Fields ifAnnotatedTarget :: IfaceAnnTarget ifAnnotatedValue :: Serialized

Instances

Binary IfaceAnnotation |

type IfaceAnnTarget = AnnTarget OccName

data IfaceInst

Constructors

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

Instances

Outputable IfaceInst |
Binary IfaceInst |

data IfaceFamInst

Constructors

IfaceFamInst |
Fields ifFamInstFam :: IfExtName ifFamInstTys :: [Maybe IfaceTyCon] ifFamInstTyCon :: IfaceTyCon

Instances

Outputable IfaceFamInst |
Binary IfaceFamInst |

ifaceDeclSubBndrs :: IfaceDecl -> [OccName]

visibleIfConDecls :: IfaceConDecls -> [IfaceConDecl]

freeNamesIfDecl :: IfaceDecl -> NameSet

freeNamesIfRule :: IfaceRule -> NameSet

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

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