diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2016-04-15 16:17:54 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2016-04-15 16:33:43 +0100 |
commit | a7ee2d4c4229b27af324ebac93081f692835365d (patch) | |
tree | 48d76af09e42f9a6020cfda6a4c527643f2c72ea /distrib | |
parent | f0e331bd9233669ef615f67e0b9e886b2ff13850 (diff) | |
download | haskell-a7ee2d4c4229b27af324ebac93081f692835365d.tar.gz |
Improve TcFlatten.flattenTyVar
This patch tides up the structure, simplifying FlattenTvResult.
It also replaces a use of zonkTcType (which I hated) with
coercionKind, in that same function. Happily, the result is
little faster, maybe even a percentage point or two, which is
a lot for a compiler.
This also removes the line
|| not (map binderVisibility bndrs1 == map binderVisibility bndrs2)
from TcCanonical.can_eq_nc', in the ForAllTy/ForAllTy case.
Why? Becuase I can't see why binder-visiblity should matter, and
when we use coercionKind instead of zonkTcType in flattenTyVar,
this case pops up and rejects a program that should pass. I did
discuss this with Richard.
Diffstat (limited to 'distrib')
0 files changed, 0 insertions, 0 deletions