Skip to content

Remove libraries from the report (to the greatest extent possible)

There is a tension between having the ability to fix and evolve the libraries, and people wanting to write books on how to use Haskell' (without having to define (+) and map etc themselves!).

We've been lucky thus far that having the hierarchial libraries completely disjoint with the report has meant that we have been able add to and alter things even in the base package without breaking anything assuming Haskell 98. We haven't had to worry about clashing with a user's Data.Function module as the Haskell 98 namespace is flat, nor worry whether adding an on function will cause ambiguous-import errors in someone's Haskell 98 program.

We still get the occasional person in #haskell asking why they can't find the fromInt their book talks about, and I think that was probably published in the 90s?

This proposal is that books should be about

Haskell', base 3.0.* and mtl 2.1.*

and Haskell' should say pretty much nothing about libraries. This gives book writers the ability to target something (and even if newer library versions come out, the old ones will still be available; old branches can even be maintained so they stay working with newer implementations if necessary) while still letting us remain agile.

The report will probably need to continue to use things like head in non-normative sections such as examples.

There will probably also need to be a package defined by Haskell' that includes things like seq and the derivable classes. It might also define IO primitives etc, but these might be better left unspecified, with the (portable) io package depending on $impl-io (e.g. ghc-io) which defines suitable primitives for the implementation.

Trac metadata
Trac field Value
Version
Type Task
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component HaskellPrime
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information