TcMType

ghc-7.0.4: The GHC API

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]

newKindVar :: TcM TcKind

newKindVars :: Int -> TcM [TcKind]

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

newCoVar :: TcType -> TcType -> TcM CoVar

newEvVars :: TcThetaType -> TcM [EvVar]

writeWantedCoVar :: CoVar -> Coercion -> TcM ()

readWantedCoVar :: CoVar -> TcM MetaDetails

newIP :: IPName Name -> TcType -> TcM IpId

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

newSilentGiven :: PredType -> TcM EvVar

isSilentEvVar :: EvVar -> Bool

newWantedEvVar :: TcPredType -> TcM EvVar

newWantedEvVars :: TcThetaType -> TcM [EvVar]

newTcEvBinds :: TcM EvBindsVar

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

tcInstTyVar :: TyVar -> TcM TcTyVar

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

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

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

instMetaTyVar :: MetaInfo -> TyVar -> TcM TcTyVar

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

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

tcInstSkolTyVar :: Bool -> TyVar -> TcM TcTyVar

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

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

tcSuperSkolTyVars :: [TyVar] -> [TcTyVar]

data Rank

data UserTypeCtxt

Constructors

FunSigCtxt Name |
ExprSigCtxt |
ConArgCtxt Name |
TySynCtxt Name |
GenPatCtxt |
LamPatSigCtxt |
BindPatSigCtxt |
ResSigCtxt |
ForSigCtxt Name |
DefaultDeclCtxt |
SpecInstCtxt |
ThBrackCtxt |
GenSigCtxt |

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

checkValidMonoType :: Type -> TcM ()

data SourceTyCtxt

Constructors

ClassSCCtxt Name |
SigmaCtxt |
DataTyCtxt Name |
TypeCtxt |
InstThetaCtxt |

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

checkValidInstance :: LHsType Name -> [TyVar] -> ThetaType -> Class -> [TcType] -> TcM ()

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

checkTyFamFreeness :: Type -> TcM ()

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

growPredTyVars :: TcPredType -> TyVarSet -> TyVarSet

growThetaTyVars :: TcThetaType -> TyVarSet -> TyVarSet

validDerivPred :: PredType -> Bool

zonkType :: (TcTyVar -> TcM Type) -> TcType -> TcM Type

mkZonkTcTyVar :: (TcTyVar -> TcM Type) -> TcTyVar -> TcM TcType

zonkTcPredType :: TcPredType -> TcM TcPredType

zonkTcTypeCarefully :: TcType -> TcM TcType

skolemiseUnboundMetaTyVar :: TcTyVar -> TcTyVarDetails -> TcM TyVar

zonkTcTyVar :: TcTyVar -> TcM TcType

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

zonkTcTyVarsAndFV :: TcTyVarSet -> TcM TcTyVarSet

zonkSigTyVar :: TcTyVar -> TcM TcTyVar

zonkQuantifiedTyVar :: TcTyVar -> TcM TcTyVar

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

zonkTcType :: TcType -> TcM TcType

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

zonkTcThetaType :: TcThetaType -> TcM TcThetaType

zonkTcKindToKind :: TcKind -> TcM Kind

zonkTcKind :: TcKind -> TcM TcKind

zonkImplication :: Implication -> TcM Implication

zonkEvVar :: EvVar -> TcM EvVar

zonkWantedEvVar :: WantedEvVar -> TcM WantedEvVar

zonkFlavoredEvVar :: FlavoredEvVar -> TcM FlavoredEvVar

zonkWC :: WantedConstraints -> TcM WantedConstraints

zonkWantedEvVars :: Bag WantedEvVar -> TcM (Bag WantedEvVar)

zonkTcTypeAndSubst :: TvSubst -> TcType -> TcM TcType

tcGetGlobalTyVars :: TcM TcTyVarSet

readKindVar :: KindVar -> TcM MetaDetails

writeKindVar :: KindVar -> TcKind -> TcM ()