Opened 13 years ago

Last modified 4 years ago

#118 new task

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

Reported by: Ian Lynagh Owned by: none
Priority: normal Milestone:
Version: Keywords:
Cc: Meta Owner:
State: discussion Section: N/A or multiple
Related Tickets:

Description

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.

Change History (3)

comment:1 Changed 13 years ago by Ian Lynagh

component: HaskellPrimeProposal
Owner: changed from ijones to none

comment:2 Changed 4 years ago by Herbert Valerio Riedel

Milestone:

moving non-milestoned many year old legacy tickets out of the way

comment:3 Changed 4 years ago by Herbert Valerio Riedel

Priority: majornormal

Set default priority (as this confuses Trac otherwise)

Note: See TracTickets for help on using tickets.