Why the Prelude must die

Simon Marlow simonmarhaskell at gmail.com
Wed Mar 28 05:52:03 EDT 2007


I support both reducing the prelude to just a few commonly used combinators, and 
  requiring an explicit import Prelude.  In response to a couple of Stefan's points:

Stefan O'Rear wrote:

> 6. Dependency
> 
> Because every module imports the Prelude every module that the Prelude
> depends on, mutually depends with the Prelude.  This creates huge
> dependency groups and general nightmares for library maintainers.

Not a problem in practice, for GHC at least: all modules below the Prelude use 
-fno-implicit-prelude, there's no recursive dependency.  Also, if the Prelude 
were smaller, it would be much lower in the dependency tree which would make 
life easier.

> 7. Monolithicity
> 
> Every module the Prelude uses MUST be in base.  Even if packages could
> be mutually recursive, it would be very difficult to upgrade any of
> the Prelude's codependents.

Not necessarily - the Prelude itself doesn't have to be in base.  If we split up 
base, then Prelude would likely have to be in a separate package.  Haskell' will 
need a separate Prelude, so the Haskell 98 Prelude will need to move to the 
haskell98 package.

Cheers,
	Simon


More information about the Libraries mailing list