Add a skeleton libraries directory
[ghc.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>