HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

  • Packageghc-9.10.3
  • Exports51
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceInertSet.hs

The work list

13 declarations

The inert set

8 declarations

Returns True iff there are no Given constraints that might, potentially, match the given class constraint. 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.Dict

valueprohibitedSuperClassSolve
  1. :: CtLoc

    is it loopy to use this one ...

  2. -> CtLoc

    ... to solve this one?

  3. -> Bool

    True ==> don't solve it

#

Is it (potentially) loopy to use the first ct1 to solve ct2?

Necessary (but not sufficient) conditions for this function to return True:

  • ct1 and ct2 both arise from superclass expansion,

  • ct1 is a Given and ct2 is a Wanted.

See Note [Solving superclass constraints] in GHC.Tc.TyCl.Instance, (sc2).

Inert equalities

8 declarations

Inert Dicts

6 declarations

Inert Irreds

8 declarations

Kick-out

2 declarations

Cycle breaker vars

4 declarations

Solving one from another

2 declarations