ghc-7.8.4: The GHC API

Safe Haskell | None
Language | Haskell98

TcHsType

# Documentation

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

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

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

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

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

data UserTypeCtxt

Constructors

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

kcLookupKind :: Name -> TcM Kind

kcTyClTyVars :: Name -> LHsTyVarBndrs Name -> TcM a -> TcM a

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

tcHsConArgType :: NewOrData -> LHsType Name -> TcM Type

tcDataKindSig :: Kind -> TcM [TyVar]

tcClassSigType :: LHsType Name -> TcM Type

data KindCheckingStrategy

Constructors

ParametricKinds |
NonParametricKinds |
FullKindSignature |

Instances

Eq KindCheckingStrategy |

kcStrategy :: TyClDecl Name -> KindCheckingStrategy

kcStrategyFamDecl :: FamilyDecl Name -> KindCheckingStrategy

kcHsTyVarBndrs :: KindCheckingStrategy -> LHsTyVarBndrs Name -> TcM (Kind, r) -> TcM (Kind, r)

tcHsTyVarBndrs :: LHsTyVarBndrs Name -> ([TcTyVar] -> TcM r) -> TcM r

tcHsLiftedType :: LHsType Name -> TcM TcType

tcHsOpenType :: LHsType Name -> TcM TcType

tcLHsType :: LHsType Name -> TcM (TcType, TcKind)

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

tcHsContext :: LHsContext Name -> TcM [PredType]

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

tcHsArgTys :: SDoc -> [LHsType Name] -> [Kind] -> TcM [TcType]

kindGeneralize :: TyVarSet -> TcM [KindVar]

checkKind :: TcKind -> TcKind -> TcM ()

tcLHsKind :: LHsKind Name -> TcM Kind

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

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