In addition to the official Haskell'98 standard libraries (defined
Haskell '98 Library Report, nhc98 is released
with many extra useful libraries.
In order to accommodate a large number of libraries whilst avoiding
name-clashes, nhc98 permits a small extension to the lexical
syntax of module names. We allow a hierarchical namespace,
with elements separated by dots, rather like in the Java language.
The syntax of qualified identifiers is extended likewise. Each element
of the module name begins with a capital letter, and the hierarchy is
assumed to map onto a directory file structure. So for instance,
the module named Data.Structures.BTree is expected to
reside in the file Data/Structures/BTree.hs.
The full hierarchy included with nhc98 is listed below.
Most of these modules have been plucked from the WWW - they are by
various authors, and have various copyrights and licensing conditions.
Please examine these licensing conditions in the source tree before
you use a library.
Documentation for these libraries is generated automatically from
the sources using HDoc, a tool written by
You can develop your own personal tree of libraries for nhc98
as well. Just give the location of the root of your tree to hmake
and/or nhc98 on the commandline, with the -Idir
|BinArray ||imperative binary arrays
|Binary ||binary I/O and binary representations of values
|Bit ||bit-twiddling operations, e.g. and, or, xor
|FFI ||foreign function interface
|GreenCard ||just the standard %dis definitions and
constructors you need in order to write your own
||like GHC's IOExts
|NonStdTrace ||the common side-effecting trace function
|PackedString ||an efficient representation of strings
The latest updates to these pages are available on the WWW from
York Functional Programming Group