Haskell 2010: libraries
duncan.coutts at worc.ox.ac.uk
Mon Jul 13 16:56:50 EDT 2009
On Wed, 2009-07-08 at 15:09 +0100, Simon Marlow wrote:
> I'm mainly concerned with projecting a consistent picture in the Report,
> so as not to mislead or confuse people. Here are the options I can see:
> 2. Just drop the obvious candidates (Time, Random, CPUTime,
> Locale, Complex?), leaving the others.
> 3. Update the libraries to match what we have at the moment.
> e.g. rename List to Data.List, and add the handful of
> functions that have since been added to Data.List. One
> problem with this is that these modules are then tied to
> the language definition, and can't be changed through
> the usual library proposal process. Also it would seem
> slightly strange to have a seemingly random set
> of library modules in the report.
> 4. Combine 2 and 3: drop some, rename the rest.
I'd advocate 4. That is, drop the ones that are obviously superseded.
Keep the commonly used and uncontroversial (mostly pure) modules and
rename them to use the new hierarchical module names.
Specifically, I suggest:
1. Ratio keep as Data.Ratio
2. Complex keep as Data.Complex
3. Numeric keep as Numeric (?)
4. Ix keep as Data.Ix
5. Array keep as Data.Array
6. List keep as Data.List
7. Maybe keep as Data.Maybe
8. Char keep as Data.Char
9. Monad keep as Control.Monad
10. IO keep as System.IO
11. Directory drop
12. System drop (superseded by System.Process)
13. Time drop
14. Locale drop
15. CPUTime drop
16. Random drop
The slightly odd thing here is keeping System.IO but dropping the other
IO libs Directory and System. We obviously have to drop System, because
it's more or less a deprecated API and it's superseded by System.Process
(which we almost certainly do not want to standardise at this stage).
It'd be nice to have a clear dividing line of keeping the pure stuff and
dropping the bits for interacting with the system however we have to
keep System.IO since bits of it are re-exported through the Prelude
(unless we also trim the Prelude). The bits for interacting with the
system are of course exactly the bits that are most prone to change and
are most in need of improvement.
Another quirk is that we never changed the name of the Numeric module.
More information about the Haskell-prime