[project @ 1997-03-14 05:24:00 by sof]
[ghc-hetmet.git] / ghc / lib / glaExts / GlaExts.lhs
1 %
2 % (c) The AQUA Project, Glasgow University, 1994-1996
3 %
4 \section[GlaExts]{The @GlaExts@ interface}
5
6 The @GlaExts@ packages up various Glasgow extensions and
7 exports them all through one interface. The Idea being that
8 a Haskell program using a Glasgow extension doesn't have to
9 selective import of obscure/likely-to-move (believe me, we
10 really like to move functions around for the prelude bits!)
11 GHC interfaces - instead import the GlaExts rag bag and you should be away!
12
13 \begin{code}
14 module GlaExts
15
16        (
17         -- From module STBase, the PrimIO monad 
18         -- (an instance of ST):
19         PrimIO,
20         ST, RealWorld,
21         module Monad,   -- ST is an instance
22         fixPrimIO, unsafePerformPrimIO, unsafeInterleavePrimIO,
23         returnPrimIO, thenPrimIO, seqPrimIO,
24         
25         listPrimIO, mapPrimIO, mapAndUnzipPrimIO,
26
27         -- operations for interfacing IO and ST/PrimIO
28         --
29         stToIO,       --:: ST RealWorld a -> IO a
30         primIOToIO,   --:: PrimIO a       -> IO a
31         ioToST,       --:: IO a -> ST RealWorld a
32         ioToPrimIO,   --:: IO a -> PrimIO       a
33         thenIO_Prim,  -- :: PrimIO a -> (a -> IO b) -> IO b
34
35         -- Everything from module ByteArray:
36         module ByteArray,
37
38         -- Same for Mutable(Byte)Array interface:
39         module MutableArray,
40         
41         -- the representation of some basic types:
42         Int(..),Addr(..),Word(..),Float(..),Double(..),Integer(..),
43
44         -- misc bits
45         trace,
46
47         -- and finally, all the unboxed primops of GHC!
48         module GHC
49
50        ) where
51
52 import GHC
53 import STBase
54 import PrelBase
55 import ByteArray
56 import MutableArray
57 import Monad
58 import IOBase
59
60 \end{code}