Skip to content

Refactor the constraint solver pipeline

Simon Peyton Jones requested to merge wip/T23070 into master

This MR makes a start on #23070.

The big change is to put the entire type-equality solver into GHC.Tc.Solver.Equality, rather than scattering it over Canonical and Interact. Other changes

  • EqCt becomes its own data type, a bit like QCInst. This is great because EqualCtList is then just [EqCt]

  • New module GHC.Tc.Solver.Dict has come of the class-contraint solver. In due course it will be all. One step at a time.

This MR is intended to have zero change in behaviour: it is a pure refactor. It opens the way to subsequent tidying up, we believe.

Merge request reports