[Haskell-beginners] question regarding standard libraries

Antoine Latter aslatter at gmail.com
Fri Jun 3 05:56:38 CEST 2011


On Thu, Jun 2, 2011 at 10:23 PM, Jake Penton <djp at arqux.com> wrote:
> I have a couple of questions about "standard libraries" as referred to in
> the Haskell 98 and 2010 reports.
> First, is there anything to infer from the use of the term "libraries"? What
> I see documented in the reports is a set of modules. Is this just a loose
> usage of the term libraries to mean a set of modules implemented somehow or
> other?

I don't think that the report provides a definition of the term
'library'. As far as I know, your 'collection of modules' is a good
definition.

> Second, although I have only perused the 98 and 2010 reports briefly, what
> "standard" means in this context does not stand out for me. Part II of the
> 2010 report jumps right into the description of Control.Monad with no
> mention of the relationship of Part II to the rest of the report. Are the
> documented modules part of the language?

I would take 'standard' to mean 'as defined by the Haskell Language
Report'. I don't know that I would say they are part of 'the
language', which some might take to mean 'grammar and structure and
execution model'. But they do provide a minimum of functionality to
any implementation claiming to support the standard, and I would
expect a lack of any of them to be documented.

For example, here is the chapter of the GHC User's Guide describing
GHC's departure from Haskell '98, which includes references to library
functions:

http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#vs-Haskell-defn

> Third, as I am learning Haskell by studying Real World Haskell I note that
> several of the modules discussed therein are not listed in the Haskell 2010
> report. A notable example is Data.Map. What is the status of such modules?
> Are they just (maybe) available in particular implementations, or in
> privately donated packages?

Data.Map is provided by the 'containers' package, available here:

http://hackage.haskell.org/package/containers

It is currently a part of the larger 'Haskell Platform', which intends
to me a living, more flexible collection of libraries than what is
enshrined by the language specification:

http://hackage.haskell.org/platform/

The website has a good description of the goals of the Haskell Platform.

> Finally, is there a good way to track changes in the implementation of
> various modules, whether "standard" or otherwise? For example I discover
> that Data.Map.lookup has changed (in ghc anyway) since RWH was written. Is
> this change agreed upon somewhere, or is it just dependent on whatever
> happens to be delivered with the Haskell implementation that I use?

For package which have a well-defined maintainer, much of this
discussion would occur with the maintainer or maintainers, with
release announcements occurring on the haskell-cafe mailing list or
occasionally the haskell announcements list. Blogs and other sites
also serve this sort of role.

The Haskell Platform itself has policies for inclusion and evolution.

Larger topics related to the state of haskell libraries takes place on
the libraries list (libraries at haskell.org). This is also a good list
for talking about the wider aims of the Haskell Platform, I suppose,
but I think they have their own list as well (altough I can't find any
links to archives or membership info).

Core packages which have no well-defined maintainer (such as the
mentioned 'containers'
are maintained via policy. Changes are proposed and discussed on the
libraries mailing list. The policy changes, and the changes are
discussed on the libraries list as well.

I'm not heavily involved in a lot of this, but I like paying
attention. So hopefully I got the details right!

Antoine


> Thank heaven for a beginner's mailing list where I can ask dumb questions.
> And thanks in advance once again for your kind efforts to help me out.
> - J -
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>



More information about the Beginners mailing list