merge upstream HEAD
[ghc-hetmet.git] / libraries / doc / lib-hierarchy.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2 <html>
3
4 <head>
5 <title>Haskell Library Hierarchy</title>
6 </head>
7
8 <body>
9
10 <h1>The Haskell Library Hierarchy</h1>
11
12 <pre>
13 Algebra
14     DomainConstructor   -- formerly DoCon
15     Geometric           -- formerly BasGeomAlg
16
17 Control
18     Exception           -- (opt, inc. error & undefined)
19     Concurrent          -- as hslibs/concurrent
20         Chan            -- these could all be moved under Data
21         MVar
22         Merge
23         QSem
24         QSemN
25         SampleVar
26         Semaphore
27     Parallel            -- as hslibs/concurrent/Parallel
28         Strategies
29     Monad               -- Haskell 98 Monad library
30         ST              -- ST defaults to Strict variant?
31             Strict      -- renaming for ST
32             Lazy        -- renaming for LazyST
33         State
34         Error
35         Identity
36         Monoid
37         Reader
38         Writer
39         Cont
40         Fix              -- to be renamed to Rec?
41         List
42         RWS
43
44 Data
45     Binary              -- Binary I/O
46     Bits
47     Bool                -- &&, ||, not, otherwise
48     Tuple               -- fst, snd
49     Char                -- H98
50     Complex             -- H98
51     Dynamic
52     Either
53     Int
54     Maybe               -- H98
55     List                -- H98
56     PackedString
57     Ratio               -- H98
58     Word
59     LargeWord           -- Word128 etc., from crypto
60     IORef
61     STRef               -- Same as Data.STRef.Strict
62         Strict          
63         Lazy            -- The lazy version (for Control.Monad.ST.Lazy)
64     Binary              -- Haskell binary I/O
65     Digest
66         MD5
67         ...             -- others (CRC ?)
68     Array               -- Haskell 98 Array library
69         Unboxed
70         IArray
71         MArray
72         IO              -- mutable arrays in the IO/ST monads
73         ST
74     Tree
75         AVL
76         RedBlack
77         BTree
78     Queue
79         Bankers
80         FIFO
81     Collection
82     Graph               -- start with GHC's DiGraph?
83     FiniteMap
84     Set
85     Memo                -- (opt)
86     Unique
87
88 Database
89     MySQL
90     PostgreSQL
91     ODBC
92
93 Dotnet
94     ...                 -- Mirrors the MS .NET class hierarchy
95
96 Debug
97     Trace
98     Observe             -- choose a default amongst the variants
99         Textual            -- Andy Gill's release 1
100         ToXmlFile          -- Andy Gill's XML browser variant
101         GHood              -- Claus Reinke's animated variant
102
103 Edison                  -- (opt, uses multi-param type classes)
104     Prelude             -- large self-contained packages should have
105     Collection          -- their own hierarchy?  Like a vendor branch.
106     Queue               -- Or should the whole Edison tree be placed
107     ...                 -- under [Data.]Structures?
108
109 Codec                   -- Coders/Decoders for various data formats
110     ASN.1
111        BER
112        TLV
113     Audio
114        Wav
115        MP3
116        ...
117     Compression
118        Gzip
119        Bzip2
120        ...
121     Encryption
122        DES
123        RSA
124        BlowFish
125        ...
126     Image
127        GIF
128        PNG
129        JPEG
130        TIFF
131        ...
132     Text
133        UTF8
134        UTF16
135        ISO8859
136        ...
137     Video
138        Mpeg
139        QuickTime
140        Avi
141        ...
142     Binary                 -- these are for encoding binary data into text
143        Base64
144        Yenc
145
146 DSP                     -- Digital Signal Processing libraries
147
148 Foreign
149     Ptr
150     StablePtr
151     ForeignPtr  -- rename to FinalisedPtr?  to void confusion with Foreign.Ptr
152     Storable
153     Marshal
154         Alloc
155         Array
156         Errors
157         Utils
158     C
159         Types
160         Errors
161         Strings
162
163 GHC
164     Exts                -- hslibs/lang/GlaExts
165     ...
166
167 Graphics
168     HGL
169     Rendering
170        Direct3D
171        FRAN
172        Metapost
173        Inventor
174        Haven
175        OpenGL
176           GL
177           GLU
178        Pan
179     UI
180        FranTk
181        Fudgets
182        GLUT
183        Gtk
184        Motif
185        ObjectIO
186        TkHaskell
187     X11
188        Xt
189        Xlib
190        Xmu
191        Xaw
192
193 Hugs
194     ...
195
196 Language
197     Haskell             -- hslibs/hssource
198         Syntax
199         Lexer
200         Parser
201         Pretty
202     HaskellCore
203     Python
204     C
205     ...
206
207 Nhc
208     ...
209
210 Numeric                 -- exports std. H98 numeric type classes
211     Statistics
212
213 Network                 -- (== hslibs/net/Socket), depends on FFI only
214     Socket              -- or rename to Posix?
215     URI                 -- general URI parsing
216     CGI                 -- one in hslibs is ok?
217     Protocol
218         HTTP
219         FTP
220         SMTP
221
222 Prelude                 -- Haskell98 Prelude (mostly just re-exports
223                            other parts of the tree).
224
225 System                  -- Interaction with the "system"
226     Cmd                 -- ( system )
227     CPUTime             -- H98
228     Directory           -- H98
229     Exit                -- ( ExitCode(..), exitWith, exitFailure )
230     Environment         -- ( getArgs, getProgName, getEnv ... )
231     Info                -- info about the host system
232     IO                  -- H98 + IOExts - IOArray - IORef
233         Select
234         Unsafe          -- unsafePerformIO, unsafeInterleaveIO
235     Console
236         GetOpt
237         Readline
238     Locale              -- H98
239     Posix
240         Console
241         Directory
242         DynamicLinker
243             Prim
244             Module
245         IO
246         Process
247         Time
248     Mem                 -- rename from cryptic 'GC'
249         Weak            -- (opt)
250         StableName      -- (opt)
251     Time                -- H98 + extensions
252     Win32               -- the full win32 operating system API
253
254 Test
255     HUnit
256     QuickCheck
257
258 Text
259     Encoding
260         QuotedPrintable
261         Rot13
262     Read
263         Lex             -- cut down lexer for "read"
264     Show
265         Functions       -- optional instance of Show for functions.
266     Regex               -- previously RegexString
267         Posix           -- Posix regular expression interface
268     PrettyPrint         -- default (HughesPJ?)
269         HughesPJ
270         Wadler
271         Chitil
272         ...
273     HTML                -- HTML combinator lib
274     XML
275         Combinators
276         Parse
277         Pretty
278         Types
279     ParserCombinators   -- no default
280         ReadP           -- a more efficient "ReadS"
281         Parsec
282         Hutton_Meijer
283         ...
284 </pre>
285
286 </html>