
On Thu, Jun 2, 2011 at 10:23 PM, Jake Penton
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-infelicitie...
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@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@haskell.org http://www.haskell.org/mailman/listinfo/beginners