File: libraries.html

package info (click to toggle)
hat 2.05%2Brerolled-7
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 9,316 kB
  • ctags: 1,077
  • sloc: haskell: 74,306; ansic: 9,588; sh: 1,770; makefile: 597
file content (191 lines) | stat: -rw-r--r-- 5,519 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Libraries in Hat</title></head>
<body bgcolor=#ffffff>
<table><tr><td width=500>

<center>
  <img src="hat.gif" alt="Hat Logo"><br>
  <h1>Libraries in Hat</h1>
</center>
<hr>

<h3>Standard Libraries</h3>
<p>
Currently, Hat fully supports the Standard Prelude and official
Haskell'98 libraries, defined in the 
<a href="http://www.haskell.org/onlinelibrary/_._.html">
<em>Haskell '98 Library Report</em></a>:


<h3>Extension Libraries</h3>
<p>
Hat also supports some of the extension libraries supplied with
more recent versions of GHC, nhc98, and Hugs.  These are the
<em>hierarchical libraries</em> mainly in the <em>base</em> 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.

<table border=1 align=center cellspacing=0 cellpadding=2><tr>
<th><font color="green">supported</font></th>
<th><font color="red">unsupported</font></th>
</tr><tr>
<td valign=top>
    Control.Arrow<br>
    Control.Monad<br>
    Control.Monad.Cont<br>
    Control.Monad.Error<br>
    Control.Monad.Fix<br>
    Control.Monad.Identity<br>
    Control.Monad.List<br>
    Control.Monad.Reader<br>
    Control.Monad.RWS<br>
    Control.Monad.State<br>
    Control.Monad.Trans<br>
    Control.Monad.Writer</td>
<td valign=top>
        Control.Concurrent<br>
        Control.Concurrent.*<br>
        Control.Exception<br>
        Control.Exception.*<br>
        Control.Monad.ST<br>
        Control.Parallel<br>
        Control.Parallel.*</td>
</tr><tr>
<td valign=top>
    Data.Array<br>
    Data.Bits<br>
    Data.Bool<br>
    Data.Char<br>
    Data.Complex<br>
    Data.Either<br>
    Data.FiniteMap<br>
    Data.IORef<br>
    Data.Ix<br>
    Data.List<br>
    Data.Maybe<br>
    Data.Monoid<br>
    Data.PackedString<br>
    Data.Ratio<br>
    Data.Set<br>
    Data.Tuple<br>
    Data.Word</td>
<td valign=top>
        Data.Array.*<br>
        Data.Int<br>
        Data.Generics<br>
        Data.Dynamic<br>
        Data.STRef<br>
        Data.STRef.*<br>
        Data.Unique<br>
        Data.Word</td>
</tr><tr>
<td valign=top>
    Debug.Trace</td>
<td valign=top>
        Debug.QuickCheck<br>
        Debug.QuickCheck.*</td>
</tr><tr>
<td valign=top>
    Foreign.ForeignPtr<br>
    Foreign.Marshal.Error<br>
    Foreign.Ptr<br>
    Foreign.StablePtr<br>
    Foreign.Storable</td>
<td valign=top>
        Foreign.C<br>
        Foreign.C.Error<br>
        Foreign.C.String<br>
        Foreign.C.Types<br>
        Foreign.C.TypesISO<br>
        Foreign.Marshal.Alloc<br>
        Foreign.Marshal.Array<br>
        Foreign.Marshal.Utils<br>
        Foreign.Marshal.Pool</td>
</tr><tr>
<td valign=top>
    System.CPUTime<br>
    System.Console.GetOpt<br>
    System.Cmd<br>
    System.Directory<br>
    System.Environment<br>
    System.Exit<br>
    System.IO<br>
    System.IO.Error<br>
    System.IO.Unsafe<br>
    System.Locale<br>
    System.Random<br>
    System.Time</td>
<td valign=top>
        System.Info<br>
        System.Mem<br>
        System.Mem.StableName<br>
        System.Mem.Weak<br>
        System.Posix.Signals<br>
        System.Posix.Types</td>
</tr><tr>
<td valign=top>
    Text.ParserCombinators.Parsec<br>
    Text.ParserCombinators.Parsec.Error<br>
    Text.ParserCombinators.Parsec.Char<br>
    Text.ParserCombinators.Parsec.Combinator<br>
    Text.ParserCombinators.Parsec.Expr<br>
    Text.ParserCombinators.Parsec.Perm<br>
    Text.ParserCombinators.Parsec.Pos<br>
    Text.ParserCombinators.Parsec.Prim<br>
    Text.PrettyPrint<br>
    Text.PrettyPrint.HughesPJ<br>
    Text.Read<br>
    Text.Show</td>
<td valign=top>
        Text.Html<br>
        Text.Html.BlockTable<br>
        Text.ParserCombinators.Parsec.Language<br>
        Text.ParserCombinators.Parsec.Token<br>
        Text.ParserCombinators.ReadP<br>
        Text.ParserCombinators.ReadPrec<br>
        Text.Read.Lex<br>
        Text.Regex<br>
        Text.Regex.Posix<br>
        Text.Show.Functions</td>
</tr></table>


<h3>Your Own Libraries</h3>
<p>
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
<em>-trusted</em> to <em>hat-trans</em> (for that library alone).


<h3>Future improvements</h3>
<p>
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 <em>wrapping</em> a library, as
opposed to the current method of <em>lifting</em> the library source
code by transformation.  However, for the moment library-wrapping
remains a dream.

<hr>
<p>
The latest updates to these pages are available on the WWW from
<a href="http://www.haskell.org/hat/">
<tt>http://www.haskell.org/hat/</tt></a><br>
<a href="http://www.cs.york.ac.uk/fp/hat/">
<tt>http://www.cs.york.ac.uk/fp/hat/</tt></a>

<p>
This page last updated: 27th July 2004<br>
<a href="http://www.cs.york.ac.uk/fp/">
York Functional Programming Group</a><br>

</td></tr></table>
</body></html>