On Sat, Jun 14, 2014 at 10:54 PM, John Meacham <john@repetae.net> wrote:
Actually, a change I'd like to see is just make sure that no modules
re-export anything that prelude exports. that way you can do a import
prelude hiding (blah) and not have to add the hiding clause to other
imports that happen to re-export prelude names.

I could personally get behind this policy.

mtl is probably the worst offender, and I receive regular complaints from users about it. It is very hard to hide something when 10 of your imports want to re-export it ;)

Moreover, many of these cases will cease to make sense in 7.8.

e.g. Data.List.foldr as a re-export would be a lot harder to motivate when that is re-exporting the Foldable version, while having it export a monomorphic version would break virtually every user of Data.List

-Edward