The libraries are divided into several packages. The available packages are:
- 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/.
- HUnit
-
HUnit is a unit testing framework for Haskell, inspired by the JUnit
tool for Java, see: http://www.junit.org.
- OpenGL
-
The OpenGL package contains a Haskell binding for the OpenGL graphics system
(GL, version 2.1) and its accompanying utility library (GLU, version 1.3).
OpenGL is the industry's most widely used and supported 2D and 3D graphics
application programming interface (API), incorporating a broad set of rendering,
texture mapping, special effects, and other powerful visualization functions.
For more information about OpenGL, please see: http://www.opengl.org/.
- 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/.
- Win32
-
A Haskell binding to the Win32 API.
- array
-
This package contains arrays.
- 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.
- bytestring
-
This package contains the bytestring library.
- cgi
-
A library for writing CGI programs.
- containers
-
This package contains basic container classes and containers.
- directory
-
This package provides a library for handling directories.
- fgl
-
Martin Erwig's Functional Graph Library.
- filepath
-
Library for manipulating FilePath's in a cross platform way.
- haskell-src
-
Facilities for manipulating Haskell source code: an abstract syntax,
lexer, parser and pretty-printer.
- hpc
-
This package contains the Haskell Program Coverage library.
- html
-
An Html combinator library.
- 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.
- old-locale
-
This package provides the old locale library.
For new code, the new locale library is recommended.
- old-time
-
This package provides the old time library.
For new code, the new time library is recommended.
- packedstring
-
This package contains the deprecated PackedString library.
- parallel
-
This package provides a library for parallel programming.
- 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
- pretty
-
This package contains a pretty-printing library.
- process
-
This package contains libraries for dealing with system processes.
- random
-
Random number library.
- 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.
- 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.
|