Introducing a datatype for WorkLists that properly prioritizes equalities.
authordimitris@microsoft.com <unknown>
Thu, 31 Mar 2011 10:26:34 +0000 (10:26 +0000)
committerdimitris@microsoft.com <unknown>
Thu, 31 Mar 2011 10:26:34 +0000 (10:26 +0000)
commit5cfe9e92a92201043d5dbb1c4e10fef0ed0d9f49
treec2d4cf12cd751a21dc794a9ddd8598baff93eb98
parent2d72a852f400ddfc756d6557b80c8f9e8e83de56
Introducing a datatype for WorkLists that properly prioritizes equalities.

We were not prioritizing the interaction of equalities in the worklist, because
pre-canonicalization solved the constraints one by one, in their arrival order.
This patch fixes this, so it's a generally useful improvement, mainly for
efficiency. It makes #4981 go away, although it's not a definite answer to the
cause of the problem. See discussion on Trac.
compiler/typecheck/TcCanonical.lhs
compiler/typecheck/TcInteract.lhs
compiler/typecheck/TcSMonad.lhs