TcSMonad
Documentation
type CanonicalCts = Bag CanonicalCt
andCCan :: CanonicalCts -> CanonicalCts -> CanonicalCts
andCCans :: [CanonicalCts] -> CanonicalCts
extendCCans :: CanonicalCts -> CanonicalCt -> CanonicalCts
isEmptyCCan :: CanonicalCts -> Bool
isCTyEqCan :: CanonicalCt -> Bool
isCIPCan_Maybe :: CanonicalCt -> Maybe (IPName Name)
data CtFlavor
Instances
isDerivedSC :: CtFlavor -> Bool
isDerivedByInst :: CtFlavor -> Bool
isGivenCt :: CanonicalCt -> Bool
isWantedCt :: CanonicalCt -> Bool
pprFlavorArising :: CtFlavor -> SDoc
data DerivedOrig
canRewrite :: CtFlavor -> CtFlavor -> Bool
combineCtLoc :: CtFlavor -> CtFlavor -> WantedLoc
mkGivenFlavor :: CtFlavor -> SkolemInfo -> CtFlavor
mkWantedFlavor :: CtFlavor -> CtFlavor
getWantedLoc :: CanonicalCt -> WantedLoc
runTcS :: SimplContext -> Untouchables -> TcS a -> TcM (a, Bag FrozenError, Bag EvBind)
nestImplicTcS :: EvBindsVar -> Untouchables -> TcS a -> TcS a
recoverTcS :: TcS a -> TcS a -> TcS a
wrapErrTcS :: TcM a -> TcS a
wrapWarnTcS :: TcM a -> TcS a
isInteractive :: SimplContext -> Bool
simplEqsOnly :: SimplContext -> Bool
newWantedCoVar :: TcType -> TcType -> TcS EvVar
newGivOrDerEvVar :: TcPredType -> EvTerm -> TcS EvVar
newDictVar :: Class -> [TcType] -> TcS EvVar
newKindConstraint :: TcTyVar -> Kind -> TcS CoVar
setWantedCoBind :: CoVar -> Coercion -> TcS ()
setDerivedCoBind :: CoVar -> Coercion -> TcS ()
setDictBind :: EvVar -> EvTerm -> TcS ()
setWantedTyBind :: TcTyVar -> TcType -> TcS ()
getInstEnvs :: TcS (InstEnv, InstEnv)
getTcSTyBindsMap :: TcS (TyVarEnv (TcTyVar, TcType))
getTcSErrors :: TcS (IORef (Bag FrozenError))
getTcSErrorsBag :: TcS (Bag FrozenError)
data ErrorKind
Constructors
MisMatchError | |
OccCheckError | |
KindError |
newFlattenSkolemTy :: TcType -> TcS TcType
instDFunConstraints :: TcThetaType -> TcS [EvVar]
newFlexiTcSTy :: Kind -> TcS TcType
isGoodRecEv :: EvVar -> WantedEvVar -> TcS Bool
compatKind :: Kind -> Kind -> Bool
isTouchableMetaTyVar :: TcTyVar -> TcS Bool
getDefaultInfo :: TcS (SimplContext, [Type], (Bool, Bool))
matchClass :: Class -> [Type] -> TcS (MatchInstResult (DFunId, [Either TyVar TcType]))
data MatchInstResult mi
Constructors
MatchInstNo | |
MatchInstSingle mi | |
MatchInstMany |
checkWellStagedDFun :: PredType -> DFunId -> WantedLoc -> TcS ()
mkWantedFunDepEqns :: WantedLoc -> [(Equation, (PredType, SDoc), (PredType, SDoc))] -> TcS [WantedEvVar]