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)
isCFrozenErr :: CanonicalCt -> Bool
data WorkList
Instances
unionWorkList :: WorkList -> WorkList -> WorkList
unionWorkLists :: [WorkList] -> WorkList
isEmptyWorkList :: WorkList -> Bool
foldrWorkListM :: Monad m => (CanonicalCt -> r -> m r) -> r -> WorkList -> m r
mkFrozenError :: CtFlavor -> EvVar -> CanonicalCt
isGivenOrSolved :: CtFlavor -> Bool
isGivenOrSolvedCt :: CanonicalCt -> Bool
isWantedCt :: CanonicalCt -> Bool
isDerivedCt :: CanonicalCt -> Bool
pprFlavorArising :: CtFlavor -> SDoc
isFlexiTcsTv :: TyVar -> Bool
canRewrite :: CtFlavor -> CtFlavor -> Bool
combineCtLoc :: CtFlavor -> CtFlavor -> WantedLoc
mkSolvedFlavor :: CtFlavor -> SkolemInfo -> CtFlavor
mkGivenFlavor :: CtFlavor -> SkolemInfo -> CtFlavor
mkWantedFlavor :: CtFlavor -> CtFlavor
getWantedLoc :: CanonicalCt -> WantedLoc
runTcS :: SimplContext -> Untouchables -> TcS a -> TcM (a, Bag EvBind)
traceFireTcS :: Int -> SDoc -> TcS ()
bumpStepCountTcS :: TcS ()
nestImplicTcS :: EvBindsVar -> TcsUntouchables -> TcS a -> TcS a
recoverTcS :: TcS a -> TcS a -> TcS a
wrapErrTcS :: TcM a -> TcS a
wrapWarnTcS :: TcM a -> TcS a
data SimplContext
Constructors
SimplInfer SDoc | |
SimplRuleLhs RuleName | |
SimplInteractive | |
SimplCheck SDoc |
Instances
isInteractive :: SimplContext -> Bool
simplEqsOnly :: SimplContext -> Bool
newEvVar :: TcPredType -> TcS EvVar
newDerivedId :: TcPredType -> TcS EvVar
newDictVar :: Class -> [TcType] -> TcS EvVar
newKindConstraint :: TcTyVar -> Kind -> TcS CoVar
setDictBind :: EvVar -> EvTerm -> TcS ()
setWantedTyBind :: TcTyVar -> TcType -> TcS ()
getInstEnvs :: TcS (InstEnv, InstEnv)
getTcSTyBindsMap :: TcS (TyVarEnv (TcTyVar, TcType))
newFlattenSkolemTy :: TcType -> TcS TcType
instDFunConstraints :: TcThetaType -> TcS [EvVar]
newFlexiTcSTy :: Kind -> TcS TcType
instFlexiTcS :: TyVar -> TcS TcTyVar
compatKind :: Kind -> Kind -> Bool
type TcsUntouchables = (Untouchables, TcTyVarSet)
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 ()