ghc-7.4.2: The GHC API

Safe Haskell | None

FamInstEnv

# Documentation

data FamInst

Constructors

FamInst |

Fields

fi_fam :: Name
fi_tcs :: [Maybe Name]
fi_tvs :: TyVarSet
fi_tys :: [Type]
fi_tycon :: TyCon

Instances

Outputable FamInst |
NamedThing FamInst |

famInstTyCon :: FamInst -> TyCon

famInstTyVars :: FamInst -> TyVarSet

pprFamInst :: FamInst -> SDoc

pprFamInstHdr :: FamInst -> SDoc

pprFamInsts :: [FamInst] -> SDoc

famInstHead :: FamInst -> ([TyVar], TyCon, [Type])

mkLocalFamInst :: TyCon -> FamInst

mkImportedFamInst :: Name -> [Maybe Name] -> TyCon -> FamInst

type FamInstEnvs = (FamInstEnv, FamInstEnv)

type FamInstEnv = UniqFM FamilyInstEnv

emptyFamInstEnv :: FamInstEnv

emptyFamInstEnvs :: (FamInstEnv, FamInstEnv)

extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv

overwriteFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv

extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv

famInstEnvElts :: FamInstEnv -> [FamInst]

familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst]

lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch]

lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [TyVar] -> [FamInstMatch]

lookupFamInstEnvConflicts' :: FamInstEnv -> FamInst -> [TyVar] -> [FamInstMatch]

topNormaliseType :: FamInstEnvs -> Type -> Maybe (Coercion, Type)

normaliseType :: FamInstEnvs -> Type -> (Coercion, Type)

normaliseTcApp :: FamInstEnvs -> TyCon -> [Type] -> (Coercion, Type)