The libraries are divided into several packages. The available packages are:
- base
-
This package contains the Prelude and its support libraries, and a large
collection of useful libraries ranging from data structures to parsing
combinators and debugging utilities.
- Cabal
-
The Haskell Cabal is the Common Architecture for Building Applications
and Libraries. It is a framework which defines a common interface for
authors to more easily build their applications in a portable way. The
Haskell Cabal is meant to be a part of a larger infrastructure for
distributing, organizing, and cataloging Haskell Libraries and
Tools. For more information, please see:
http://www.haskell.org/cabal/.
- cgi
-
A library for writing CGI programs.
- fgl
-
Martin Erwig's Functional Graph Library.
- haskell-src
-
Facilities for manipulating Haskell source code: an abstract syntax,
lexer, parser and pretty-printer.
- haskell98
-
This package provides compatibility with the modules of Haskell 98 and
the FFI addendum, by means of wrappers around modules from the base package
(which in many cases have additional features).
However Prelude, Numeric and Foreign are provided directly
by the base package.
The modules of this package are documented in the Revised Haskell 98 Report,
at http://www.haskell.org/onlinereport/,
and the Haskell 98 Foreign Function Interface addendum,
at http://www.cse.unsw.edu.au/~chak/haskell/ffi/.
- html
-
An Html combinator library.
- HUnit
-
HUnit is a unit testing framework for Haskell, inspired by the JUnit
tool for Java, see: http://www.junit.org.
- mtl
-
A monad transformer library, inspired by the paper
Functional Programming with Overloading and Higher-Order Polymorphism,
Mark P Jones (http://www.cse.ogi.edu/~mpj/)
Advanced School of Functional Programming, 1995.
- network
-
Networking-related facilities.
- parsec
-
A monadic parser combinator library, written by Daan Leijen. Parsec is designed
from scratch as an industrial-strength parser library. It is simple, safe, well
documented, has extensive libraries and good error messages, and is also
fast. More documentation can be found on:
http://www.cs.uu.nl/~daan/parsec.html
- QuickCheck
-
A library for testing Haskell programs automatically. The programmer provides a
specification of the program, in the form of properties which functions should
satisfy, and QuickCheck then tests that the properties hold in a large number of
randomly generated cases. Specifications are expressed in Haskell, using
combinators defined in the QuickCheck library. QuickCheck provides combinators
to define properties, observe the distribution of test data, and define test
data generators. For more information, please see:
http://www.math.chalmers.se/~rjmh/QuickCheck/.
- readline
-
An interface to the GNU readline library. More information on
readline can be found at http://www.gnu.org/directory/readline.html.
- regex-base
-
Interfaces for regular expressions
- regex-compat
-
Compatibility for Text.Regex
- regex-posix
-
POSIX regular expressions
- stm
-
Software Transactional Memory: a modular composable concurrency abstraction.
- template-haskell
-
Facilities for manipulating Haskell source code using Template Haskell.
- time
-
Clock and calendar time.
- unix
-
POSIX functionality.
- xhtml
-
An XHtml combinator library.
Implementation-specific notes:
- GHC/GHCi
- Most of the time, all the packages are available without the need to
use any additional command-line options. The only time when this is not the
case is when linking a program on the command line, without using the --make
option: in this case you must list all the packages to link to by adding the
-package P flag (where P is the package name) to the command line for each
package. See the User's Guide (../users_guide/index.html) for more
details.
- Hugs
- Hugs provides almost all of the modules in the above packages,
with exceptions listed on the Hugs 98 libraries status page
(http://cvs.haskell.org/Hugs/pages/libstatus.html).
All those modules are always available.
- Nhc98
- Nhc98 provides many of the modules in the above packages (see the
Nhc98 libraries page (http://www.haskell.org/nhc98/libraries.html) for a more
details). The modules of the haskell98 package are available without the need
to use any additional compile-time options. To use modules from some other
package P with Nhc98, add the compile-time option -package P.
|