On Thursday 22 May 2003 10:22 am, Graham Klyne wrote:
I'm not yet fully used to the distribution of functions between standard libraries and the Prelude.
The policy for exporting a function from the Prelude is, roughly speaking, Is this function useful in small, simple examples? The idea being that teachers, students and people writing quick scripts don't want to get bogged down in the module system on day 1. Unfortunately, the definition of 'small' and 'simple' is somewhat subjective and we also carry some historical baggage (i.e., we don't want to remove an export if it still exists even if it is not very useful) so it's a bit hard to see the pattern of where things come from. If you're writing a non-trivial program, you might be best importing things directly from the standard libraries even if it is exported by the Prelude. Alternatively, you might consider importing things from the hierarchical libraries. The advantage of the hierarchical libraries is that their interfaces are not frozen by the Haskell-98 definition but that is, of course, also their chief disadvantage. -- Alastair Reid