WIP: Refactor the solver to use predicates, not types.
This refactors the solver to make all constraints, etc., revolve around predicates, not types. A design goal is to avoid uses of classifyPredType
as much as possible. A good starting point is to read Predicate.hs
, and then perhaps Constraint.hs
.
There is no intended change in behavior, but a few outstanding bugs were fixed along the way (#17737, #15177).
This will support #17201/#17536 (closed)/#15979, and build a path toward having homogeneous equality (#17368), and hence, dependent types.
Edited by Richard Eisenberg