ghc-7.8.2: The GHC API

Safe Haskell | None
Language | Haskell98

IfaceType

# Documentation

type IfExtName = Name

type IfLclName = FastString

data IfaceType

Constructors

IfaceTyVar IfLclName |
IfaceAppTy IfaceType IfaceType |
IfaceFunTy IfaceType IfaceType |
IfaceForAllTy IfaceTvBndr IfaceType |
IfaceTyConApp IfaceTyCon [IfaceType] |
IfaceLitTy IfaceTyLit |

Instances

Outputable IfaceType |
Binary IfaceType |

type IfacePredType = IfaceType

type IfaceKind = IfaceType

newtype IfaceTyCon

Constructors

IfaceTc |
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 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 |

type IfaceContext = [IfacePredType]

data IfaceBndr

Constructors

IfaceIdBndr !IfaceIdBndr |
IfaceTvBndr !IfaceTvBndr |

Instances

Outputable IfaceBndr |
Binary IfaceBndr |

type IfaceTvBndr = (IfLclName, IfaceKind)

type IfaceIdBndr = (IfLclName, IfaceType)

toIfaceType :: Type -> IfaceType

toIfaceKind :: Type -> IfaceType

toIfaceContext :: ThetaType -> IfaceContext

toIfaceBndr :: Var -> IfaceBndr

toIfaceIdBndr :: Id -> (IfLclName, IfaceType)

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

toIfaceTyCon :: TyCon -> IfaceTyCon

toIfaceTyCon_name :: Name -> IfaceTyCon

toIfaceCoercion :: Coercion -> IfaceCoercion

pprIfaceType :: IfaceType -> SDoc

pprParendIfaceType :: IfaceType -> SDoc

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

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

pprIfaceIdBndr :: (IfLclName, IfaceType) -> SDoc

pprIfaceTvBndr :: IfaceTvBndr -> SDoc

pprIfaceTvBndrs :: [IfaceTvBndr] -> SDoc

pprIfaceBndrs :: [IfaceBndr] -> SDoc

tOP_PREC :: Int

tYCON_PREC :: Int

noParens :: SDoc -> SDoc

maybeParen :: Int -> Int -> SDoc -> SDoc

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

pprIfaceCoercion :: IfaceCoercion -> SDoc

pprParendIfaceCoercion :: IfaceCoercion -> SDoc