Libraries in Hat
Standard Libraries
Currently, Hat fully supports the Standard Prelude and official
Haskell'98 libraries, defined in the
Haskell '98 Library Report:
Extension Libraries
Hat also supports some of the extension libraries supplied with
more recent versions of GHC, nhc98, and Hugs. These are the
hierarchical libraries mainly in the base package.
Actually only a subset of the base, parsec, and mtl packages is
currently available in Hat, but it includes most of the really
useful and common extensions, such as the FFI libraries, IORefs,
and unsafePerformIO. A full list is below.
supported |
unsupported |
Control.Arrow
Control.Monad
Control.Monad.Cont
Control.Monad.Error
Control.Monad.Fix
Control.Monad.Identity
Control.Monad.List
Control.Monad.Reader
Control.Monad.RWS
Control.Monad.State
Control.Monad.Trans
Control.Monad.Writer |
Control.Concurrent
Control.Concurrent.*
Control.Exception
Control.Exception.*
Control.Monad.ST
Control.Parallel
Control.Parallel.* |
Data.Array
Data.Bits
Data.Bool
Data.Char
Data.Complex
Data.Either
Data.FiniteMap
Data.IORef
Data.Ix
Data.List
Data.Maybe
Data.Monoid
Data.PackedString
Data.Ratio
Data.Set
Data.Tuple
Data.Word |
Data.Array.*
Data.Int
Data.Generics
Data.Dynamic
Data.STRef
Data.STRef.*
Data.Unique
Data.Word |
Debug.Trace |
Debug.QuickCheck
Debug.QuickCheck.* |
Foreign.ForeignPtr
Foreign.Marshal.Error
Foreign.Ptr
Foreign.StablePtr
Foreign.Storable |
Foreign.C
Foreign.C.Error
Foreign.C.String
Foreign.C.Types
Foreign.C.TypesISO
Foreign.Marshal.Alloc
Foreign.Marshal.Array
Foreign.Marshal.Utils
Foreign.Marshal.Pool |
System.CPUTime
System.Console.GetOpt
System.Cmd
System.Directory
System.Environment
System.Exit
System.IO
System.IO.Error
System.IO.Unsafe
System.Locale
System.Random
System.Time |
System.Info
System.Mem
System.Mem.StableName
System.Mem.Weak
System.Posix.Signals
System.Posix.Types |
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.Html
Text.Html.BlockTable
Text.ParserCombinators.Parsec.Language
Text.ParserCombinators.Parsec.Token
Text.ParserCombinators.ReadP
Text.ParserCombinators.ReadPrec
Text.Read.Lex
Text.Regex
Text.Regex.Posix
Text.Show.Functions |
Your Own Libraries
If you wish to trace a program that uses some libraries, then at the
moment you need to copy the source for that library into the same
source tree as your program, and explicitly compile it for tracing
along with the program. Obviously this requires that the library
itself is implemented exclusively in the superset of Haskell'98
supported by Hat. If you trust that the library is correct and do
not wish to trace its internal calls, then you can give the flag
-trusted to hat-trans (for that library alone).
Future improvements
We have ideas for the future whereby a library can be used in
its original form without needing re-compilation for tracing.
We sometimes refer to this idea as wrapping a library, as
opposed to the current method of lifting the library source
code by transformation. However, for the moment library-wrapping
remains a dream.
The latest updates to these pages are available on the WWW from
http://www.haskell.org/hat/
http://www.cs.york.ac.uk/fp/hat/
This page last updated: 27th July 2004
York Functional Programming Group
|