Claus I've committed a patch that fixes printing for classes etc (the bug you found). Instead of using dropForAlls, you can now use PprTyThing.pprTypeForUser.

I hope that helps.

thanks, yes it does: it simplifies my patch, and it fixes the bug
where dropping the inner forall captures an inner variable.

but i couldn't see how your patches addressed the dual issue,
where lifting the inner forall captures an outer variable (same
test case, just without dropping foralls). until i noticed that
somehow you always rename the inner forall binding, even if it isn't dropped.

however, you don't actually seem to do any lifting to merge the two foralls in front, and still claim that
   c :: forall a b. (C a b) => forall a1. a1 -> b

is a valid type - ghc disagrees!-) nesting foralls is ok, but
nesting a forall in a context does not seem to be accepted.

do you intend to change that (either the acceptance, or the
output), or should i send my updated patches now?

thanks,
claus

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to