ghc-7.6.3: The GHC API

Safe Haskell | None

TcMType

# Documentation

type TcTyVar = TyVar

type TcKind = Kind

type TcType = Type

type TcTauType = TcType

type TcThetaType = ThetaType

type TcTyVarSet = TyVarSet

newFlexiTyVar :: Kind -> TcM TcTyVar

newFlexiTyVarTy :: Kind -> TcM TcType

newFlexiTyVarTys :: Int -> Kind -> TcM [TcType]

newMetaKindVar :: TcM TcKind

newMetaKindVars :: Int -> TcM [TcKind]

mkKindSigVar :: Name -> KindVar

mkTcTyVarName :: Unique -> FastString -> Name

newMetaTyVar :: MetaInfo -> Kind -> TcM TcTyVar

readMetaTyVar :: TyVar -> TcM MetaDetails

writeMetaTyVar :: TcTyVar -> TcType -> TcM ()

writeMetaTyVarRef :: TcTyVar -> TcRef MetaDetails -> TcType -> TcM ()

isFilledMetaTyVar :: TyVar -> TcM Bool

isFlexiMetaTyVar :: TyVar -> TcM Bool

newEvVar :: TcPredType -> TcM EvVar

newEvVars :: TcThetaType -> TcM [EvVar]

newEq :: TcType -> TcType -> TcM EvVar

newDict :: Class -> [TcType] -> TcM DictId

newWantedEvVar :: TcPredType -> TcM EvVar

newWantedEvVars :: TcThetaType -> TcM [EvVar]

newTcEvBinds :: TcM EvBindsVar

addTcEvBind :: EvBindsVar -> EvVar -> EvTerm -> TcM ()

tcInstTyVars :: [TKVar] -> TcM ([TcTyVar], [TcType], TvSubst)

tcInstSigTyVars :: [TyVar] -> TcM (TvSubst, [TcTyVar])

newSigTyVar :: Name -> Kind -> TcM TcTyVar

tcInstType :: ([TyVar] -> TcM (TvSubst, [TcTyVar])) -> TcType -> TcM ([TcTyVar], TcThetaType, TcType)

tcInstSkolTyVars :: [TyVar] -> TcM (TvSubst, [TcTyVar])

tcInstSuperSkolTyVars :: [TyVar] -> TcM [TcTyVar]

tcInstSkolTyVarsX :: TvSubst -> [TyVar] -> TcM (TvSubst, [TcTyVar])

tcInstSuperSkolTyVarsX :: TvSubst -> [TyVar] -> TcM (TvSubst, [TcTyVar])

tcInstSkolTyVar :: Bool -> TvSubst -> TyVar -> TcM (TvSubst, TcTyVar)

tcInstSkolType :: TcType -> TcM ([TcTyVar], TcThetaType, TcType)

tcSkolDFunType :: Type -> TcM ([TcTyVar], TcThetaType, TcType)

tcSuperSkolTyVars :: [TyVar] -> (TvSubst, [TcTyVar])

data Rank

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 |

checkValidType :: UserTypeCtxt -> Type -> TcM ()

checkValidMonoType :: Type -> TcM ()

expectedKindInCtxt :: UserTypeCtxt -> Maybe Kind

checkValidTheta :: UserTypeCtxt -> ThetaType -> TcM ()

checkValidInstHead :: UserTypeCtxt -> Class -> [Type] -> TcM ()

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

validDerivPred :: TyVarSet -> PredType -> Bool

checkInstTermination :: [TcType] -> ThetaType -> TcM ()

checkValidFamInst :: [Type] -> Type -> TcM ()

checkTyFamFreeness :: Type -> TcM ()

arityErr :: Outputable a => String -> a -> Int -> Int -> SDoc

growThetaTyVars :: TcThetaType -> TyVarSet -> TyVarSet

quantifyPred :: TyVarSet -> PredType -> Bool

zonkTcPredType :: TcPredType -> TcM TcPredType

skolemiseSigTv :: TcTyVar -> TcM TcTyVar

skolemiseUnboundMetaTyVar :: TcTyVar -> TcTyVarDetails -> TcM TyVar

zonkTcTyVar :: TcTyVar -> TcM TcType

zonkTcTyVars :: [TcTyVar] -> TcM [TcType]

zonkTyVarsAndFV :: TyVarSet -> TcM TyVarSet

zonkQuantifiedTyVar :: TcTyVar -> TcM TcTyVar

zonkQuantifiedTyVars :: [TcTyVar] -> TcM [TcTyVar]

zonkTcType :: TcType -> TcM TcType

zonkTcTypes :: [TcType] -> TcM [TcType]

zonkTcThetaType :: TcThetaType -> TcM TcThetaType

zonkTcKind :: TcKind -> TcM TcKind

defaultKindVarToStar :: TcTyVar -> TcM Kind

zonkCt :: Ct -> TcM Ct

zonkCts :: Cts -> TcM Cts

zonkImplication :: Implication -> TcM Implication

zonkEvVar :: EvVar -> TcM EvVar

zonkWC :: WantedConstraints -> TcM WantedConstraints

zonkId :: TcId -> TcM TcId

tcGetGlobalTyVars :: TcM TcTyVarSet