patch applied (ghc): Fix two related bugs in u_tys
Simon Peyton Jones
simonpj at microsoft.com
Fri Dec 11 07:24:36 EST 2009
Fri Dec 11 04:01:22 PST 2009 simonpj at microsoft.com
* Fix two related bugs in u_tys
When we normalise a type family application we must recursively call
uTys, *not* 'go', because the latter loop is only there to look
through type synonyms. This bug made the type checker generate
ill-typed coercions, which were rejected by Core Lint.
A related bug only affects the size of coercions. If faced with
(m a) ~ (F b c)
where F has arity 1, we want to decompose to
m ~ F Int, a ~ c
rather than deferring. The application decomposition was being
tried last, so we were missing this opportunity.
Thanks to Roman for an example that showed all this up.
M ./compiler/typecheck/TcUnify.lhs -23 +24
View patch online:
More information about the Cvs-ghc