ghc-7.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

IfaceType

# Documentation

type IfExtName = Name Source

type IfLclName = FastString Source

data IfaceType Source

Constructors

IfaceTyVar IfLclName |
IfaceAppTy IfaceType IfaceType |
IfaceFunTy IfaceType IfaceType |
IfaceDFunTy IfaceType IfaceType |
IfaceForAllTy IfaceTvBndr IfaceType |
IfaceTyConApp IfaceTyCon IfaceTcArgs |
IfaceLitTy IfaceTyLit |

Instances

Outputable IfaceType |
Binary IfaceType |

type IfacePredType = IfaceType Source

type IfaceKind = IfaceType Source

data IfaceTyCon Source

Constructors

IfaceTc |
Fields ifaceTyConName :: IfExtName
IfacePromotedDataCon |
Fields ifaceTyConName :: IfExtName
IfacePromotedTyCon |
Fields ifaceTyConName :: IfExtName

Instances

Outputable IfaceTyCon |
Binary IfaceTyCon |

data IfaceCoercion Source

Constructors

IfaceReflCo Role IfaceType |
IfaceFunCo Role IfaceCoercion IfaceCoercion |
IfaceTyConAppCo Role IfaceTyCon [IfaceCoercion] |
IfaceAppCo IfaceCoercion IfaceCoercion |
IfaceForAllCo IfaceTvBndr IfaceCoercion |
IfaceCoVarCo IfLclName |
IfaceAxiomInstCo IfExtName BranchIndex [IfaceCoercion] |
IfaceUnivCo FastString Role IfaceType IfaceType |
IfaceSymCo IfaceCoercion |
IfaceTransCo IfaceCoercion IfaceCoercion |
IfaceNthCo Int IfaceCoercion |
IfaceLRCo LeftOrRight IfaceCoercion |
IfaceInstCo IfaceCoercion IfaceType |
IfaceSubCo IfaceCoercion |
IfaceAxiomRuleCo IfLclName [IfaceType] [IfaceCoercion] |

Instances

Outputable IfaceCoercion |
Binary IfaceCoercion |

data IfaceTyLit Source

Constructors

IfaceNumTyLit Integer |
IfaceStrTyLit FastString |

Instances

Outputable IfaceTyLit |
Binary IfaceTyLit |

data IfaceTcArgs Source

Constructors

ITC_Nil |
ITC_Type IfaceType IfaceTcArgs |
ITC_Kind IfaceKind IfaceTcArgs |

Instances

Outputable IfaceTcArgs |
Binary IfaceTcArgs |

type IfaceContext = [IfacePredType] Source

data IfaceBndr Source

Constructors

IfaceIdBndr !IfaceIdBndr |
IfaceTvBndr !IfaceTvBndr |

Instances

Outputable IfaceBndr |
Binary IfaceBndr |

data IfaceOneShot Source

Constructors

IfaceNoOneShot |
IfaceOneShot |

Instances

Binary IfaceOneShot |

type IfaceLamBndr = (IfaceBndr, IfaceOneShot) Source

type IfaceTvBndr = (IfLclName, IfaceKind) Source

type IfaceIdBndr = (IfLclName, IfaceType) Source

toIfaceType :: Type -> IfaceType Source

toIfaceTypes :: [Type] -> [IfaceType] Source

toIfaceKind :: Type -> IfaceType Source

toIfaceTyVar :: TyVar -> FastString Source

toIfaceContext :: ThetaType -> IfaceContext Source

toIfaceBndr :: Var -> IfaceBndr Source

toIfaceIdBndr :: Id -> (IfLclName, IfaceType) Source

toIfaceTvBndrs :: [TyVar] -> [(IfLclName, IfaceType)] Source

toIfaceTyCon :: TyCon -> IfaceTyCon Source

toIfaceTyCon_name :: Name -> IfaceTyCon Source

toIfaceTcArgs :: TyCon -> [Type] -> IfaceTcArgs Source

tcArgsIfaceTypes :: IfaceTcArgs -> [IfaceType] Source

toIfaceCoercion :: Coercion -> IfaceCoercion Source

pprIfaceType :: IfaceType -> SDoc Source

pprParendIfaceType :: IfaceType -> SDoc Source

pprIfaceContext :: Outputable a => [a] -> SDoc Source

pprIfaceContextArr :: Outputable a => [a] -> SDoc Source

pprIfaceContextMaybe :: Outputable a => [a] -> Maybe SDoc Source

pprIfaceIdBndr :: (IfLclName, IfaceType) -> SDoc Source

pprIfaceLamBndr :: IfaceLamBndr -> SDoc Source

pprIfaceTvBndr :: IfaceTvBndr -> SDoc Source

pprIfaceTvBndrs :: [IfaceTvBndr] -> SDoc Source

pprIfaceBndrs :: [IfaceBndr] -> SDoc Source

pprIfaceTcArgs :: IfaceTcArgs -> SDoc Source

pprParendIfaceTcArgs :: IfaceTcArgs -> SDoc Source

pprIfaceForAllPart :: Outputable a => [IfaceTvBndr] -> [a] -> SDoc -> SDoc Source

pprIfaceForAll :: [IfaceTvBndr] -> SDoc Source

pprIfaceSigmaType :: IfaceType -> SDoc Source

pprIfaceCoercion :: IfaceCoercion -> SDoc Source

pprParendIfaceCoercion :: IfaceCoercion -> SDoc Source

splitIfaceSigmaTy :: IfaceType -> ([IfaceTvBndr], [IfacePredType], IfaceType) Source

pprIfaceTypeApp :: IfaceTyCon -> IfaceTcArgs -> SDoc Source

pprUserIfaceForAll :: [IfaceTvBndr] -> SDoc Source

suppressIfaceKinds :: DynFlags -> [IfaceTvBndr] -> [a] -> [a] Source

stripIfaceKindVars :: DynFlags -> [IfaceTvBndr] -> [IfaceTvBndr] Source

stripKindArgs :: DynFlags -> IfaceTcArgs -> IfaceTcArgs Source

substIfaceType :: IfaceTySubst -> IfaceType -> IfaceType Source

substIfaceTyVar :: IfaceTySubst -> IfLclName -> IfaceType Source

substIfaceTcArgs :: IfaceTySubst -> IfaceTcArgs -> IfaceTcArgs Source

mkIfaceTySubst :: [IfaceTvBndr] -> [IfaceType] -> IfaceTySubst Source