TcMType
Documentation
type TcThetaType = ThetaType
type TcTyVarSet = TyVarSet
newFlexiTyVar :: Kind -> TcM TcTyVar
newFlexiTyVarTy :: Kind -> TcM TcType
newFlexiTyVarTys :: Int -> Kind -> TcM [TcType]
newKindVar :: TcM TcKind
newKindVars :: Int -> TcM [TcKind]
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]
newWantedCoVar :: TcType -> TcType -> TcM CoVar
writeWantedCoVar :: CoVar -> Coercion -> TcM ()
readWantedCoVar :: CoVar -> TcM MetaDetails
newSelfDict :: Class -> [TcType] -> TcM DictId
isSelfDict :: EvVar -> Bool
newWantedEvVar :: TcPredType -> TcM EvVar
newWantedEvVars :: TcThetaType -> TcM [EvVar]
addTcEvBind :: EvBindsVar -> EvVar -> EvTerm -> TcM ()
tcInstTyVar :: TyVar -> TcM TcTyVar
tcInstSigTyVars :: [TyVar] -> TcM [TcTyVar]
tcInstType :: ([TyVar] -> TcM [TcTyVar]) -> TcType -> TcM ([TcTyVar], TcThetaType, TcType)
tcInstSigType :: Bool -> Name -> TcType -> TcM ([TcTyVar], TcThetaType, TcRhoType)
instMetaTyVar :: MetaInfo -> TyVar -> TcM TcTyVar
tcInstSkolTyVars :: SkolemInfo -> [TyVar] -> TcM [TcTyVar]
tcInstSkolTyVar :: SkolemInfo -> TyVar -> TcM TcTyVar
tcInstSkolType :: SkolemInfo -> TcType -> TcM ([TcTyVar], TcThetaType, TcType)
tcSkolSigType :: SkolemInfo -> Type -> TcM ([TcTyVar], TcThetaType, TcType)
tcSkolSigTyVars :: SkolemInfo -> [TyVar] -> [TcTyVar]
data Rank
data UserTypeCtxt
checkValidType :: UserTypeCtxt -> Type -> TcM ()
checkValidMonoType :: Type -> TcM ()
data SourceTyCtxt
Constructors
ClassSCCtxt Name | |
SigmaCtxt | |
DataTyCtxt Name | |
TypeCtxt | |
InstThetaCtxt |
checkValidTheta :: SourceTyCtxt -> ThetaType -> TcM ()
checkValidInstHead :: Type -> TcM (Class, [TcType])
checkInstTermination :: [TcType] -> ThetaType -> [Message]
checkValidTypeInst :: [Type] -> Type -> TcM ()
checkTyFamFreeness :: Type -> TcM ()
growPredTyVars :: TcPredType -> TyVarSet -> TyVarSet
growThetaTyVars :: TcThetaType -> TyVarSet -> TyVarSet
validDerivPred :: PredType -> Bool
zonkTcTypeCarefully :: TcType -> TcM TcType
skolemiseUnboundMetaTyVar :: SkolemInfo -> TcTyVar -> TcM TyVar
zonkTcTyVar :: TcTyVar -> TcM TcType
zonkTcTyVars :: [TcTyVar] -> TcM [TcType]
zonkSigTyVar :: TcTyVar -> TcM TcTyVar
zonkQuantifiedTyVar :: TcTyVar -> TcM TcTyVar
zonkQuantifiedTyVars :: [TcTyVar] -> TcM [TcTyVar]
zonkTcType :: TcType -> TcM TcType
zonkTcTypes :: [TcType] -> TcM [TcType]
zonkTcKindToKind :: TcKind -> TcM Kind
zonkTcKind :: TcKind -> TcM TcKind
zonkTcTypeAndSubst :: TvSubst -> TcType -> TcM TcType
readKindVar :: KindVar -> TcM MetaDetails
writeKindVar :: KindVar -> TcKind -> TcM ()