16 May 02:10
Proposal/Idea: Split up base even further
From: Twan van Laarhoven <twanvl <at> gmail.com>
Subject: Proposal/Idea: Split up base even further
Newsgroups: gmane.comp.lang.haskell.libraries
Date: 2008-05-16 00:14:02 GMT
Subject: Proposal/Idea: Split up base even further
Newsgroups: gmane.comp.lang.haskell.libraries
Date: 2008-05-16 00:14:02 GMT
Hello librarians,
Here is an idea to resolve some of the problems that remain with the base package:
The problem:
Users can not update their version of the 'base' package, since it is tied to
Ghc. If a useful new function is added using it requires updating the compiler.
On the one hand this puts people off using these new functions. On the other
hand it also makes updates to for instance Data.List take way longer to reach
the users because we have to wait for the next Ghc release.
The proposal:
User code should NEVER import the library that is now called 'base', it should
provide an internal API only. For example, base can include the modules
Internal.Data.List
Internal.Control.Monad
Internal.IO
etc.
Which are as minimal and low level as possible, containing just the things that
Ghc RELIES on like:
- type classes for which instances can be derived (Eq, Ord, etc.)
- data types and classes with syntactic sugar (Bool, [], Num, Monad)
- low level stuff like IO and ST and primitives
In short, everything that is now under Ghc.*, and hopefully less, becomes the
new base library. In my opinion half of that can still be moved out, like most
of Ghc.List, Ghc.Enum, Ghc.IO and Ghc.Read.
(Continue reading)
RSS Feed