summaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2016-04-15 16:17:54 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2016-04-15 16:33:43 +0100
commita7ee2d4c4229b27af324ebac93081f692835365d (patch)
tree48d76af09e42f9a6020cfda6a4c527643f2c72ea /distrib
parentf0e331bd9233669ef615f67e0b9e886b2ff13850 (diff)
downloadhaskell-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