IfaceType

ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

IfaceType

# Documentation

type IfExtName = Name

type IfLclName = FastString

data IfaceType

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

type IfaceKind = IfaceType

data IfaceTyCon

Constructors

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

Instances

Outputable IfaceTyCon |
Binary IfaceTyCon |

data IfaceCoercion

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

Constructors

IfaceNumTyLit Integer |
IfaceStrTyLit FastString |

Instances

Outputable IfaceTyLit |
Binary IfaceTyLit |

data IfaceTcArgs

Constructors

ITC_Nil |
ITC_Type IfaceType IfaceTcArgs |
ITC_Kind IfaceKind IfaceTcArgs |

Instances

Outputable IfaceTcArgs |
Binary IfaceTcArgs |

type IfaceContext = [IfacePredType]

data IfaceBndr

Constructors

IfaceIdBndr !IfaceIdBndr |
IfaceTvBndr !IfaceTvBndr |

Instances

Outputable IfaceBndr |
Binary IfaceBndr |

data IfaceOneShot

Constructors

IfaceNoOneShot |
IfaceOneShot |

Instances

Binary IfaceOneShot |

type IfaceLamBndr = (IfaceBndr, IfaceOneShot)

type IfaceTvBndr = (IfLclName, IfaceKind)

type IfaceIdBndr = (IfLclName, IfaceType)

toIfaceType :: Type -> IfaceType

toIfaceTypes :: [Type] -> [IfaceType]

toIfaceKind :: Type -> IfaceType

toIfaceTyVar :: TyVar -> FastString

toIfaceContext :: ThetaType -> IfaceContext

toIfaceBndr :: Var -> IfaceBndr

toIfaceIdBndr :: Id -> (IfLclName, IfaceType)

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

toIfaceTyCon :: TyCon -> IfaceTyCon

toIfaceTyCon_name :: Name -> IfaceTyCon

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

tcArgsIfaceTypes :: IfaceTcArgs -> [IfaceType]

toIfaceCoercion :: Coercion -> IfaceCoercion

pprIfaceType :: IfaceType -> SDoc

pprParendIfaceType :: IfaceType -> SDoc

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

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

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

pprIfaceIdBndr :: (IfLclName, IfaceType) -> SDoc

pprIfaceLamBndr :: IfaceLamBndr -> SDoc

pprIfaceTvBndr :: IfaceTvBndr -> SDoc

pprIfaceTvBndrs :: [IfaceTvBndr] -> SDoc

pprIfaceBndrs :: [IfaceBndr] -> SDoc

pprIfaceTcArgs :: IfaceTcArgs -> SDoc

pprParendIfaceTcArgs :: IfaceTcArgs -> SDoc

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

pprIfaceForAll :: [IfaceTvBndr] -> SDoc

pprIfaceSigmaType :: IfaceType -> SDoc

pprIfaceCoercion :: IfaceCoercion -> SDoc

pprParendIfaceCoercion :: IfaceCoercion -> SDoc

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

pprIfaceTypeApp :: IfaceTyCon -> IfaceTcArgs -> SDoc

pprUserIfaceForAll :: [IfaceTvBndr] -> SDoc

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

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

stripKindArgs :: DynFlags -> IfaceTcArgs -> IfaceTcArgs

substIfaceType :: IfaceTySubst -> IfaceType -> IfaceType

substIfaceTyVar :: IfaceTySubst -> IfLclName -> IfaceType

substIfaceTcArgs :: IfaceTySubst -> IfaceTcArgs -> IfaceTcArgs

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