Proposal: NoImplicitPreludeImport

Manuel M T Chakravarty chak at
Tue Jun 4 05:15:58 CEST 2013

I agree with Bryan. Such an invasive change should have a great payoff.

Simon Marlow (in a different discussion) proposed the following (IMO much better) idea: 

If a module contains an import of the form

  import Prelude.XYZ

then it also automatically uses the NoImplicitPrelude language pragma. Otherwise, the Prelude remains to be implicitly defined as before.

This simplifies using an alternative Prelude with no cost for modules that do not make use of that feature.


Bryan O'Sullivan <bos at>:
> On Tue, May 28, 2013 at 8:23 AM, Ian Lynagh <ian at> wrote:
> I have made a wiki page describing a new proposal,
> NoImplicitPreludeImport, which I intend to propose for Haskell 2014:
> What do you think?
> This is a truly terrible idea.
> It purports to be a step towards fixing the backwards compatibility problem, but of course it breaks every module ever written along the way, and it means that packages that try to be compatible across multiple versions of GHC will need mandatory CPP #ifdefs for years to come.
> The current model that we have, of opting out of the Prelude explicitly, provides the same capability without damning the entire Haskell world to a months-long edit-recompile cycle.
> Of course being able to evolve the language and its libraries is important, but experience from other languages (e.g. Python, Ruby) offer the lesson that ignoring the "if it ain't broke, don't fix it" rule is very perilous: it risks hobbling language growth and development for years. This proposal takes that rule and maximally flouts it, while offering scant payoff in return.
> _______________________________________________
> Haskell-prime mailing list
> Haskell-prime at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Haskell-prime mailing list