Safe Haskell | None |
---|
TcMType
Documentation
type TcThetaType = ThetaType
type TcTyVarSet = TyVarSet
newFlexiTyVar :: Kind -> TcM TcTyVar
newFlexiTyVarTy :: Kind -> TcM TcType
newFlexiTyVarTys :: Int -> Kind -> TcM [TcType]
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]
newWantedEvVar :: TcPredType -> TcM EvVar
newWantedEvVars :: TcThetaType -> TcM [EvVar]
addTcEvBind :: EvBindsVar -> EvVar -> EvTerm -> TcM ()
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]
tcInstSkolType :: TcType -> TcM ([TcTyVar], TcThetaType, TcType)
tcSkolDFunType :: Type -> TcM ([TcTyVar], TcThetaType, TcType)
tcSuperSkolTyVars :: [TyVar] -> (TvSubst, [TcTyVar])
data Rank
data UserTypeCtxt
checkValidType :: UserTypeCtxt -> Type -> TcM ()
checkValidMonoType :: Type -> TcM ()
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 ()
growThetaTyVars :: TcThetaType -> TyVarSet -> TyVarSet
quantifyPred :: TyVarSet -> PredType -> Bool
skolemiseSigTv :: TcTyVar -> TcM TcTyVar
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]
zonkTcKind :: TcKind -> TcM TcKind
defaultKindVarToStar :: TcTyVar -> TcM Kind