Interim fix for a nasty type-matching bug
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 13 Sep 2017 08:26:26 +0000 (09:26 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 14 Sep 2017 07:37:30 +0000 (08:37 +0100)
commit9218ea60faa744803fb41066aedd1da8f1bd9185
tree5229ef01c6bc1ca3529108256391265474661442
parenta38acda69fa9c7a7f7f9f5adeaf769488a21fa48
Interim fix for a nasty type-matching bug

The type matcher in types/Unify.hs was producing a substitution
that had variables from the template in its range.  Yikes!

This patch, documented in Note [Matching in the presence of casts],
is an interm fix.  Richard and I don't like it much, and are
pondering a better solution (Trac #14119).

All this came up in investigating Trac #13910. Alas this patch
doesn't fix #13910, which still has ASSERT failures, so I have
not yet added a test.  But the patch does fix a definite bug.
compiler/types/Unify.hs