ghc-7.0.3: The GHC API

TcMType

# Documentation

type TcTyVar = TyVar Source

type TcKind = Kind Source

type TcType = Type Source

type TcTauType = TcType Source

type TcThetaType = ThetaType Source

type TcTyVarSet = TyVarSet Source

newFlexiTyVar :: Kind -> TcM TcTyVar Source

newFlexiTyVarTy :: Kind -> TcM TcType Source

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

newKindVar :: TcM TcKind Source

newKindVars :: Int -> TcM [TcKind]Source

mkTcTyVarName :: Unique -> FastString -> Name Source

newMetaTyVar :: MetaInfo -> Kind -> TcM TcTyVar Source

readMetaTyVar :: TyVar -> TcM MetaDetails Source

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

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

isFilledMetaTyVar :: TyVar -> TcM Bool Source

isFlexiMetaTyVar :: TyVar -> TcM Bool Source

newEvVar :: TcPredType -> TcM EvVar Source

newCoVar :: TcType -> TcType -> TcM CoVar Source

newEvVars :: TcThetaType -> TcM [EvVar]Source

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

readWantedCoVar :: CoVar -> TcM MetaDetails Source

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

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

newSilentGiven :: PredType -> TcM EvVar Source

isSilentEvVar :: EvVar -> Bool Source

newWantedEvVar :: TcPredType -> TcM EvVar Source

newWantedEvVars :: TcThetaType -> TcM [EvVar]Source

newTcEvBinds :: TcM EvBindsVar Source

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

tcInstTyVar :: TyVar -> TcM TcTyVar Source

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

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

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

instMetaTyVar :: MetaInfo -> TyVar -> TcM TcTyVar Source

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

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

tcInstSkolTyVar :: Bool -> TyVar -> TcM TcTyVar Source

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

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

tcSuperSkolTyVars :: [TyVar] -> [TcTyVar]Source

data Rank Source

data UserTypeCtxt Source

Constructors

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

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

checkValidMonoType :: Type -> TcM ()Source

data SourceTyCtxt Source

Constructors

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

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

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

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

checkTyFamFreeness :: Type -> TcM ()Source

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

growPredTyVars :: TcPredType -> TyVarSet -> TyVarSet Source

growThetaTyVars :: TcThetaType -> TyVarSet -> TyVarSet Source

validDerivPred :: PredType -> Bool Source

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

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

zonkTcPredType :: TcPredType -> TcM TcPredType Source

zonkTcTypeCarefully :: TcType -> TcM TcType Source

skolemiseUnboundMetaTyVar :: TcTyVar -> TcTyVarDetails -> TcM TyVar Source

zonkTcTyVar :: TcTyVar -> TcM TcType Source

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

zonkTcTyVarsAndFV :: TcTyVarSet -> TcM TcTyVarSet Source

zonkSigTyVar :: TcTyVar -> TcM TcTyVar Source

zonkQuantifiedTyVar :: TcTyVar -> TcM TcTyVar Source

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

zonkTcType :: TcType -> TcM TcType Source

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

zonkTcThetaType :: TcThetaType -> TcM TcThetaType Source

zonkTcKindToKind :: TcKind -> TcM Kind Source

zonkTcKind :: TcKind -> TcM TcKind Source

zonkImplication :: Implication -> TcM Implication Source

zonkEvVar :: EvVar -> TcM EvVar Source

zonkWantedEvVar :: WantedEvVar -> TcM WantedEvVar Source

zonkFlavoredEvVar :: FlavoredEvVar -> TcM FlavoredEvVar Source

zonkWC :: WantedConstraints -> TcM WantedConstraints Source

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

zonkTcTypeAndSubst :: TvSubst -> TcType -> TcM TcType Source

tcGetGlobalTyVars :: TcM TcTyVarSet Source

readKindVar :: KindVar -> TcM MetaDetails Source

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