ghc-7.4.2: The GHC API

Safe Haskell | None

TcHsType

# Documentation

tcHsSigType :: UserTypeCtxt -> LHsType Name -> TcM Type

tcHsSigTypeNC :: UserTypeCtxt -> LHsType Name -> TcM Type

tcHsDeriv :: HsType Name -> TcM ([TyVar], Class, [Type])

tcHsVectInst :: LHsType Name -> TcM (Class, [Type])

tcHsInstHead :: UserTypeCtxt -> LHsType Name -> TcM ([TyVar], ThetaType, Class, [Type])

tcHsQuantifiedType :: [LHsTyVarBndr Name] -> LHsType Name -> TcM ([TyVar], Type)

data UserTypeCtxt

Constructors

FunSigCtxt Name |
InfSigCtxt Name |
ExprSigCtxt |
ConArgCtxt Name |
TySynCtxt Name |
LamPatSigCtxt |
BindPatSigCtxt |
ResSigCtxt |
ForSigCtxt Name |
DefaultDeclCtxt |
InstDeclCtxt |
SpecInstCtxt |
ThBrackCtxt |
GenSigCtxt |
GhciCtxt |
ClassSCCtxt Name |
SigmaCtxt |
DataTyCtxt Name |

kcHsTyVars :: [LHsTyVarBndr Name] -> ([LHsTyVarBndr Name] -> TcM r) -> TcM r

kcHsSigType :: LHsType Name -> TcM (LHsType Name)

kcHsLiftedSigType :: LHsType Name -> TcM (LHsType Name)

kcLHsType :: LHsType Name -> TcM (LHsType Name, TcKind)

kcCheckLHsType :: LHsType Name -> ExpKind -> TcM (LHsType Name)

kcHsContext :: LHsContext Name -> TcM (LHsContext Name)

kcApps :: Outputable a => a -> TcKind -> [LHsType Name] -> TcM ([LHsType Name], TcKind)

kindGeneralizeKind :: TcKind -> TcM ([KindVar], Kind)

kindGeneralizeKinds :: [TcKind] -> TcM ([KindVar], [Kind])

scDsLHsKind :: LHsKind Name -> TcM Kind

scDsLHsMaybeKind :: Maybe (LHsKind Name) -> TcM (Maybe Kind)

tcHsType :: LHsType Name -> TcM Type

tcCheckHsType :: LHsType Name -> Kind -> TcM Type

tcHsKindedContext :: LHsContext Name -> TcM ThetaType

tcHsKindedType :: LHsType Name -> TcM Type

tcHsBangType :: LHsType Name -> TcM Type

tcTyVarBndrs :: [LHsTyVarBndr Name] -> ([TyVar] -> TcM r) -> TcM r

tcTyVarBndrsKindGen :: [LHsTyVarBndr Name] -> ([TyVar] -> TcM r) -> TcM r

dsHsType :: LHsType Name -> TcM Type

tcDataKindSig :: Kind -> TcM [TyVar]

tcTyClTyVars :: Name -> [LHsTyVarBndr Name] -> ([TyVar] -> Kind -> TcM a) -> TcM a

data ExpKind

Constructors

EK TcKind SDoc |

Instances

Outputable ExpKind |

ekConstraint :: ExpKind

expArgKind :: SDoc -> TcKind -> Int -> ExpKind

checkExpectedKind :: Outputable a => a -> TcKind -> ExpKind -> TcM ()

tcHsPatSigType :: UserTypeCtxt -> LHsType Name -> TcM ([TyVar], Type)

tcPatSig :: UserTypeCtxt -> LHsType Name -> TcSigmaType -> TcM (TcType, [(Name, TcType)], HsWrapper)