Skip to content

Refactor the constraint solver

For some time Richard and I have wanted to refactor the constraint solver. Currently every constraint travels down a "pipeline" consisting of

  • Canonicalisation
  • Interact with the inert set
  • Do top level reactions (e.g. instance decls)

This turns out to clumsy, especially for equality constraints. So instead we just want a solver for equalities, a solver for class constraints, and so on. We think that will modularise the code, and make it easier to modify. This ticket tracks progress.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information