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 namecomplete?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.

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 namedescription
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: 30th January 2003
York Functional Programming Group