Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data WorkList = WL {
- wl_eqs :: [Ct]
- wl_rest :: [Ct]
- wl_implics :: Bag Implication
- isEmptyWorkList :: WorkList -> Bool
- emptyWorkList :: WorkList
- extendWorkListNonEq :: Ct -> WorkList -> WorkList
- extendWorkListCt :: Ct -> WorkList -> WorkList
- extendWorkListCts :: [Ct] -> WorkList -> WorkList
- extendWorkListEq :: Ct -> WorkList -> WorkList
- extendWorkListDeriveds :: [CtEvidence] -> WorkList -> WorkList
- appendWorkList :: WorkList -> WorkList -> WorkList
- extendWorkListImplic :: Implication -> WorkList -> WorkList
- workListSize :: WorkList -> Int
- selectWorkItem :: WorkList -> Maybe (Ct, WorkList)
- data InertSet = IS {
- inert_cans :: InertCans
- inert_cycle_breakers :: [(TcTyVar, TcType)]
- inert_famapp_cache :: FunEqMap (TcCoercion, TcType)
- inert_solved_dicts :: DictMap CtEvidence
- data InertCans = IC {
- inert_eqs :: InertEqs
- inert_funeqs :: FunEqMap EqualCtList
- inert_dicts :: DictMap Ct
- inert_insts :: [QCInst]
- inert_safehask :: DictMap Ct
- inert_irreds :: Cts
- inert_given_eq_lvl :: TcLevel
- inert_given_eqs :: Bool
- type InertEqs = DTyVarEnv EqualCtList
- emptyInert :: InertSet
- addInertItem :: TcLevel -> InertCans -> Ct -> InertCans
- matchableGivens :: CtLoc -> PredType -> InertSet -> Cts
- mightEqualLater :: InertSet -> TcPredType -> CtLoc -> TcPredType -> CtLoc -> Bool
- prohibitedSuperClassSolve :: CtLoc -> CtLoc -> Bool
- foldTyEqs :: (Ct -> b -> b) -> InertEqs -> b -> b
- delEq :: InertCans -> CanEqLHS -> TcType -> InertCans
- findEq :: InertCans -> CanEqLHS -> [Ct]
- kickOutRewritableLHS :: CtFlavourRole -> CanEqLHS -> InertCans -> (WorkList, InertCans)
The work list
WL | |
|
isEmptyWorkList :: WorkList -> Bool Source #
extendWorkListNonEq :: Ct -> WorkList -> WorkList Source #
extendWorkListCt :: Ct -> WorkList -> WorkList Source #
extendWorkListCts :: [Ct] -> WorkList -> WorkList Source #
extendWorkListEq :: Ct -> WorkList -> WorkList Source #
extendWorkListDeriveds :: [CtEvidence] -> WorkList -> WorkList Source #
extendWorkListImplic :: Implication -> WorkList -> WorkList Source #
workListSize :: WorkList -> Int Source #
The inert set
IS | |
|
IC | |
|
type InertEqs = DTyVarEnv EqualCtList Source #
matchableGivens :: CtLoc -> PredType -> InertSet -> Cts Source #
Returns Given constraints that might, potentially, match the given pred. This is used when checking to see if a Given might overlap with an instance. See Note [Instance and Given overlap] in GHC.Tc.Solver.Interact
mightEqualLater :: InertSet -> TcPredType -> CtLoc -> TcPredType -> CtLoc -> Bool Source #
prohibitedSuperClassSolve :: CtLoc -> CtLoc -> Bool Source #