# nhc98 libraries ### Standard Libraries nhc98 supports all the standard libraries from the official Haskell '98 Library Report. Here is a summary of the status of each.
library name | complete? | notes
--- | --- | ---
Array | yes | implementation based on vectors
CPUTime | yes | .
Char | yes | .
Complex | yes | .
Directory | yes | .
IO | no | missing: hReady, hWaitForInput, hLookAhead, hIsOpen, hIsClosed, hIsReadable, hIsWritable, hIsSeekable
Ix | yes | .
List | yes | additional fns: deleteFirsts, elemBy, elemIndexBy, lookupBy, notElemBy, permutations, subsequences, sums, products
Locale | yes | .
Maybe | yes | .
Monad | yes | additional fn: untilM
Numeric | yes | additional fn: showIntBase
Prelude | yes | .
Random | yes | identical to Hugs implementation
Ratio | yes | .
System | yes | .
Time | yes | .
### Extension libraries Some of the standard hierarchical libraries are provided in nhc98. At the moment, they are drawn solely from the base package. To use these, you must add the compile-time option -package base. See here for full documentation.
supported | unsupported
--- | ---
Control.Arrow Control.Monad Control.Monad.Fix Control.Monad.Trans | Control.Concurrent Control.Concurrent.* Control.Exception Control.Exception.* Control.Monad.* Control.Parallel Control.Parallel.*
Data.Array Data.Bits Data.Bool Data.Char Data.Complex Data.Dynamic Data.Either Data.FiniteMap Data.IORef Data.Int Data.Ix Data.List Data.Maybe Data.PackedString Data.Ratio Data.Set Data.Tuple Data.Word | Data.Array.* Data.Generics Data.STRef Data.STRef.* Data.Unique
Debug.Trace | Debug.QuickCheck Debug.QuickCheck.*
Foreign.C Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.C.TypesISO Foreign.ForeignPtr Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Utils Foreign.Marshal.Pool Foreign.Marshal Foreign.Ptr Foreign.StablePtr Foreign.Storable Foreign |
System.Console.GetOpt System.Cmd System.Directory System.Environment System.Exit System.IO System.IO.Error System.IO.Unsafe System.Info System.Locale System.Random | System.CPUTime System.Mem System.Mem.StableName System.Mem.Weak System.Posix.Signals System.Posix.Types System.Time
Text.Html Text.Html.BlockTable Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Error Text.ParserCombinators.Parsec.Char Text.ParserCombinators.Parsec.Combinator Text.ParserCombinators.Parsec.Expr Text.ParserCombinators.Parsec.Perm Text.ParserCombinators.Parsec.Pos Text.ParserCombinators.Parsec.Prim Text.PrettyPrint Text.PrettyPrint.HughesPJ Text.Read Text.Show Text.Show.Functions | Text.ParserCombinators.Parsec.Language Text.ParserCombinators.Parsec.Token Text.ParserCombinators.ReadP Text.ParserCombinators.ReadPrec Text.Read.Lex Text.Regex Text.Regex.*
The following non-standard libraries are provided only in nhc98, not in any other compiler. They are available without any special compiler options.
library name | description
--- | ---
NHC.BinArray | imperative binary arrays
NHC.Binary | binary I/O and binary representations of values
NHC.Bit | bit-twiddling operations, e.g. and, or, xor
NHC.FFI | foreign function interface
NHC.GreenCard | just the standard `%dis` definitions and constructors you need in order to write your own GreenCard files
NHC.IOExtras | contains IORefs, IOArrays, unsafePerformIO, etc.
NonStdTrace | the common side-effecting `trace` function
NHC.PackedString | a space-efficient representation of strings
The latest updates to these pages are available on the WWW from `http://www.haskell.org/nhc98/` This page last updated: 17th December 2003 York Functional Programming Group