diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-05-01 15:51:10 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-05-07 09:10:14 +0100 |
commit | d1295da3a4031cd102de77ab65d6d5b9b452213c (patch) | |
tree | bc61a1f846116fc6bc93ca96ec039345e33a0444 | |
parent | 97d320f56b5848d6ba2c723c6e7f04f98e349a86 (diff) | |
download | haskell-d1295da3a4031cd102de77ab65d6d5b9b452213c.tar.gz |
Comments only
-rw-r--r-- | compiler/typecheck/TcFlatten.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/typecheck/TcFlatten.hs b/compiler/typecheck/TcFlatten.hs index 4c74ba9cb1..09ed3402b8 100644 --- a/compiler/typecheck/TcFlatten.hs +++ b/compiler/typecheck/TcFlatten.hs @@ -1576,6 +1576,11 @@ Consider f1 = (Given, ReprEq) f2 = (Derived, NomEq) f = (Derived, ReprEq) +I thought maybe we could never get Derived ReprEq constraints, but +we can; straight from the Wanteds during improvment. And from a Derived +ReprEq we could conceivably get a Derived NomEq improvment (by decomposing +a type constructor with Nomninal role), and hence unify. + Note [canRewriteOrSame] ~~~~~~~~~~~~~~~~~~~~~~~ canRewriteOrSame is similar but |