switch to new Haddock-generated library docs
[haskell-report.git] / report / plain_haskell.verb
1 %
2 % $Header: /home/cvs/root/haskell-report/report/plain_haskell.verb,v 1.4 2002/12/02 11:22:02 simonpj Exp $
3 %
4
5 % NOTE:--------------------------------------------------------------
6 % The formatting of this report and the ``new font selection scheme''
7 % for LaTeX don't agree w/ each other.  Using an ``oldlfont'' style
8 % option may help.
9 % -------------------------------------------------------------------
10 %
11
12 % -------------------------------------------------------------------
13 % formatting for ONE-SIDED printing:
14 %  * De-comment the \documentstyle, etc., here; comment out the
15 %    two-sided ones below.
16 %  * Change the definition of \startnewstuff (below).
17 %  * Copy the pre-built index file for one-sided printing:
18 %       cp haskell.ind.one-sided haskell.ind
19 %  * Comment out the "twosidefix" stuff from Joe Fasel, just below.
20 %  * If you don't have "makeindex", make the adjustments
21 %    listed in the README file.
22 %  * Run "make haskell.dvi" several times (three, at most) to be
23 %    sure that cross-references stabilise.  [For the 1.1 report,
24 %    one run should be enough.]
25 %\documentstyle[11pt,makeidx]{article}
26 %\oddsidemargin=.25in
27 %\evensidemargin=.25in
28
29 % formatting for double-sided
30 \documentclass[titlepage,twoside,11pt]{article}
31
32 \usepackage{makeidx}
33 \usepackage{graphicx}
34
35 \evensidemargin=0in
36 \oddsidemargin=.5in
37
38 % Inverted for SIGPLAN -- Page 1 is a LEFT page!!
39 %\evensidemargin=.5in
40 %\oddsidemargin=0in
41
42 %---------------------------------------------------------------------
43 % Joe Fasel said this "twosidefix" is necessary if you really
44 % have a two-sided printer:
45 %       (note: double @@'s for verbatim-ery)
46 \makeatletter
47 \def\titlepage{\@@restonecolfalse\if@@twocolumn\@@restonecoltrue\onecolumn
48  \else \newpage \fi \thispagestyle{empty}\c@@page\m@@ne}
49 \def\endtitlepage{\if@@twoside\newpage\thispagestyle{empty}\hbox{}
50                         \else \c@@page\@@z \fi
51    \if@@restonecol\twocolumn \else \newpage \fi}
52 \makeatother
53 %---------------------------------------------------------------------
54
55 \sloppy
56
57
58 % the major sections have \cleardoublepages between them
59 % if you want those between EVERY section, change the
60 % following defn:
61 \newcommand{\startnewsection}{\clearpage}
62 %
63 % if doing one-sided printing, change this defn to
64 % be just "\clearpage":
65 \newcommand{\startnewstuff}{\cleardoublepage}
66 % keep some pages from looking unbelievably appalling
67 \raggedbottom
68
69 % Fix those ugly floating figures.
70 \renewcommand{\floatpagefraction}{0.1}
71 \renewcommand{\textfraction}{0.1}
72 \renewcommand{\topfraction}{1.0}
73 \renewcommand{\bottomfraction}{1.0}
74
75 % table of contents: show only down to subsections
76 \setcounter{tocdepth}{2}
77
78 % general formatting
79 \textheight=8.5in
80 \textwidth=6.0in
81 \topmargin=0in
82 \pagestyle{headings}
83
84 \makeindex
85 % an extra thing for makeindex
86 \newcommand{\hseealso}[2]{{\em see also\/} #1}
87
88 % NEWCOMMANDS
89
90 % general
91 \newcommand{\folks}[1]{\begin{quote}\sf#1\end{quote}}
92 \newcommand{\sectionpart}[1]{\vspace{2 ex}\noindent{\bf #1}}
93 \newcommand{\bq}{\begin{quote}}
94 \newcommand{\eq}{\end{quote}}
95 \newcommand{\bt}{\begin{tabular}}
96 \newcommand{\et}{\end{tabular}}
97 \newcommand{\bto}{\begin{tabular}}
98 \newcommand{\eto}{\end{tabular}}
99 \newcommand{\bi}{\begin{itemize}}
100 \newcommand{\ei}{\end{itemize}}
101 \newcommand{\struthack}[1]{\rule{0pt}{#1}}
102 \newcommand{\inputHS}{\input}
103
104 \newcommand{\ToDo}[1]{}
105 %\newcommand{\ToDo}[1]{({\bf $\spadesuit$ ToDo:} {\em #1})}
106
107 \newcommand{\WeSay}[1]{}
108 %\newcommand{\WeSay}[1]{({\bf $\clubsuit$ YaleSays:} {\em #1})}
109
110 \newcommand{\anchor}[2]{#2}
111
112 % indexing
113 \newcommand{\indextt}[1]{\index{#1@@{\tt #1}}}
114 \newcommand{\indexsyn}[1]{\index{#1@@{\it #1}}}
115 \newcommand{\indexmodule}[1]{\index{#1@@{\tt #1} (module)}}
116 \newcommand{\indextycon}[1]{\index{#1@@{\tt #1} (datatype)}}
117 \newcommand{\indexsynonym}[1]{\index{#1@@{\tt #1} (type synonym)}}
118 \newcommand{\indexclass}[1]{\index{#1@@{\tt #1} (class)}}
119 \newcommand{\indexdi}[1]{\index{#1@@{\tt #1} (class)!derived instance}}
120 \newcommand{\indexnote}[1]{#1n}
121 \newcommand{\emptystr}{[\,]}
122
123 \makeatletter
124 \def\theindex{\@@restonecoltrue\if@@twocolumn\@@restonecolfalse\fi
125 \columnseprule \z@@
126 \columnsep 35pt\twocolumn[\section*{Index}
127         \addcontentsline{toc}{section}{Index}
128         \input{index-intro}\vskip 20pt]
129  \@@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@@
130  \parskip\z@@ plus .3pt\relax\let\item\@@idxitem
131 }
132 \makeatother
133
134 % outlined figures
135 \newcommand{\ecaption}[1]{\vspace{-1 ex}\caption{#1}\vspace{1 ex}}
136 % partain fiddled here...
137 %   also had to change two lines in verbatim.lex from
138 %<SYNTAX>{nl}"|"{sp}    { printf ("$\\\\ \n$\\it "); 
139 %                         printf ("$\\>\\makebox[3em]{$|$}$\\it "); }
140 % to
141 %
142 %<SYNTAX>{nl}"|"{sp}    { printf ("$\\\\ \n$\\it "); 
143 %                         printf ("$\\>\\makebox[3.5em]{$|$}$\\it "); }
144 % so things would still line up.  Oh what a hack.
145 %
146 %\newcommand{\outline}{\outlinewidth{1.0}}
147 %\newcommand{\outlinewidth}[2]{
148 %\begin{center}
149 %\fbox{ \begin{minipage}{#1\textwidth}
150 %\vspace{1 ex}
151 %#2
152 %\end{minipage} }
153 %\vspace{1 ex}
154 %\end{center}
155 %}
156 % 6.0in (\textwidth) - 15pt (overfullness) ~=~ 415pt
157 \newcommand{\outline}[1]{%
158 \begin{center}
159 \fbox{ \begin{minipage}{415pt}
160 \vspace{1 ex}
161 #1
162 \end{minipage} }
163 \vspace{1 ex}
164 \end{center}
165 }
166
167 \newcommand{\outlinec}{\outline}  % Centered outlines in html
168
169 % haskell code
170 % partain fiddled here...
171 % \newcommand{\bprog}{\par \begin{tabular}{|l} 
172 %                   \mbox \bgroup \begin{minipage} {\textwidth} }
173 % 6.0in (\textwidth) - 17pt (\parindent) ~=~ 412pt
174 %\newcommand{\bprog}{\par \begin{tabular}{@@{}l@@{}} 
175 %                   \mbox \bgroup \begin{minipage} {412pt} }
176 %\newcommand{\eprog}{\end{minipage} 
177 %                    \egroup
178 %                    \end{tabular}\\[\parskip]}
179 % 17pt is \parindent
180 % this method gives a 17pt indent in _all_ situations
181 \newcommand{\bprog}{%
182 \par\noindent\begin{tabular}{@@{\hspace*{17pt}}l@@{}}}
183 \newcommand{\eprog}{%
184 \end{tabular}\\[\parskip]}
185 \newcommand{\eprogNoSkip}{%
186 \end{tabular}}
187 %
188 % variants for stdprelude; don't indent, and skip a little more
189 \newcommand{\bprogB}{%
190 \begin{tabular}{@@{}l@@{}}}
191 \newcommand{\eprogB}{%
192 \end{tabular}\\[0.6\baselineskip]}
193
194 %special characters
195 \newcommand{\bkq}{\mbox{\it \char'022}} % (syntax) backquote char
196 \newcommand{\bkqB}{\bkq} % (syntax) backquote char (Before)
197 \newcommand{\bkqA}{\hspace{-.2em}\mbox{\it \char'022}}% (syntax) backquote char (After)
198 %\newcommand{\fwq}{\mbox{\it \char'023}} % (syntax) (forward) quote char
199 % math formatting
200 \newcommand{\ba}{\begin{array}}
201 \newcommand{\ea}{\end{array}}
202 \newcommand{\mc}{\multicolumn}
203 \newcommand{\pile}[1]{\ba[t]{@@{}l@@{}} #1 \ea}
204 \newcommand{\eqn}[1]{\ba[t]{@@{}lcl@@{}} #1 \ea}
205 \newcommand{\equate}[1]{\[\eqn{#1}\]}
206 \newcommand{\la}{\leftarrow}
207 \newcommand{\ra}{\rightarrow}
208 \newcommand{\sq}[1]{[\,#1\,]}
209 \newcommand{\ab}[1]{\langle#1\rangle}
210 \newcommand{\ablarge}[1]{\langle \pile{#1\,\rangle}}
211 \newcommand{\lb}{[\![}
212 \newcommand{\rb}{]\!]}
213 \newcommand{\db}[1]{\lb#1\rb}
214 \newcommand{\ti}[1]{\mbox{{\it #1}}}
215 \newcommand{\tr}[1]{\mbox{{\rm #1}}}
216 \newcommand{\tb}[1]{\mbox{{\bf #1}}}
217 \newcommand{\x}{\times}
218 \newcommand{\lam}{\lambda}
219 \newcommand{\kr}{\kappa_{\rho}}
220 \newcommand{\syneq}{\rightarrow}
221 % denotational semantics
222 \newcommand{\denote}[3]{\[\ba{c} {\cal #1} : #2 \\[1 ex] #3 \ea\]}
223 \newcommand{\den}[2]{{\cal #1}\db{#2}\,}
224
225 \newcommand{\A}{\den{A}}
226 \newcommand{\B}{\den{B}}
227 \newcommand{\D}{\den{D}}
228 \newcommand{\E}{\den{E}}
229 \newcommand{\F}{\den{F}}
230 \newcommand{\G}{\den{G}}
231 \newcommand{\I}{\den{I}}
232 %%% \renewcommand{\L}{\den{L}}
233 \newcommand{\LE}{\den{L_E}}
234 \newcommand{\LH}{\den{L_H}}
235 \newcommand{\M}{\den{M}}
236 %%% \renewcommand{\O}{\den{O}}
237 \renewcommand{\P}{\den{P}}
238 \newcommand{\Pbot}{\den{P_{\bot}}}
239 \newcommand{\Q}{\den{Q}}
240 \newcommand{\R}{\den{R}}
241 \renewcommand{\S}{\den{S}}
242 \newcommand{\V}{\den{V}}
243 \newcommand{\W}{\den{W}}
244 \newcommand{\T}[2]{\den{T}{#1}\,\db{#2}}
245 % meta language
246 \newcommand{\PP}{\den{P'}}
247 \newcommand{\PS}{\den{P_S}}
248 \newcommand{\otherwise}{\quad\tr{otherwise}}
249 \newcommand{\case}[2]{\pile{
250  \tr{case}\ (#1)\ \tr{of} \\
251  \ba{@@{\quad}l@@{\ \ra\ }l@@{}} #2 \ea}}
252 \newcommand{\where}[2]{#1 \quad\tr{where}\quad #2}
253 \newcommand{\wherelarge}[2]{\pile{#1 \\ \tr{where} \\ \eqn{#2}}}
254 \newcommand{\cond}[3]{#1 \ra #2,\ #3}
255 \newcommand{\condlarge}[1]{\ba[t]{@@{}l@@{\ \ra\ }l@@{}} #1 \ea}
256 \newcommand{\range}[2]{{}_{#1}^{#2}\,}
257 % semantic operators
258 \newcommand{\concat}{\frown}
259 \newcommand{\seq}[1]{\ti{List}\ #1}
260 \newcommand{\opt}[1]{\widetilde{#1}}
261 \newcommand{\ov}{\opt{v}}
262 \newcommand{\fail}{\ti{none}}
263 \newcommand{\nonfail}{\ti{proper}}
264 \newcommand{\sym}{\bigtriangledown}
265 \newcommand{\pri}{\mathbin{\vec{\sym}}}
266 \newcommand{\mrg}{\mathbin{\dot{\sym}}}
267 \newcommand{\Sym}{\mathbin{\nabla}}
268 \newcommand{\Pri}{\mathbin{\vec{\Sym}}}
269 \newcommand{\Mrg}{\mathbin{\dot{\Sym}}}
270 \newcommand{\optSym}{\mathbin{\opt{\Sym}}}
271 \newcommand{\optodot}{\mathbin{\opt{\odot}}}
272 \newcommand{\proj}{\mid}
273 \newcommand{\restrict}{\setminus}
274 \newcommand{\sel}[4]{\ti{sel}_{#3#2}\ #4}
275 \newcommand{\bindnone}{\ti{bindnone}}
276 \newcommand{\bindvar}[2]{\ti{bindvar}\ \db{#1}\ #2}
277 \newcommand{\bindcon}[2]{\ti{bindcon}\ \db{#1}\ #2}
278 \newcommand{\bindconlarge}[4]{
279  #4\ \bindcon{#1}{\ablarge{ #2, \\ #3}}}
280 \newcommand{\bindmod}[2]{\ti{bindmod}\ \db{#1}\ #2}
281
282 \newcommand{\lookupval}[2]{\ti{lookupval}\ #1\ \db{#2}} %%% NEW
283 \newcommand{\lookupcon}[1]{\ti{lookupcon}\ \db{#1}} %%% NEW
284 \newcommand{\lookupdecon}[2]{\ti{lookupdecon}\ #1\ \db{#2}} %%% NEW
285
286 % used in static.verb
287 \newcommand{\TT}{\den{T_T}}
288 \newcommand{\TA}{\den{T_A}}
289 \newcommand{\TB}{\den{T_B}}
290 \newcommand{\TD}{\den{T_D}}
291 \newcommand{\TDA}{\den{T_{D_A}}}
292 \newcommand{\TDB}{\den{T_{D_B}}}
293 \newcommand{\TDP}{\den{T_{P_D}}}
294 \newcommand{\TE}{\den{T_E}}
295 \newcommand{\TLE}{\den{T_{L_E}}}
296 \newcommand{\TLH}{\den{T_{L_H}}}
297 %%% \newcommand{\TG}{\den{T_G}}
298 \newcommand{\TQ}{\den{T_Q}}
299 %%% \newcommand{\TR}{\den{T_R}}
300 \newcommand{\TF}{\den{T_F}}
301 \newcommand{\TFA}{\den{T_F'}}
302 \newcommand{\TP}{\den{T_P}}
303 \newcommand{\TPP}{\den{T_P'}}
304 \newcommand{\TPS}{\den{T_{PS}}}
305 \newcommand{\MGU}{\ti{MGU}}
306 \newcommand{\TI}{\den{T_I}}
307 \newcommand{\TL}{\den{T_L}}
308 \newcommand{\TM}{\den{T_M}}
309 %%% \newcommand{\TO}{\den{T_O}}
310 \newcommand{\TS}{\den{T_S}}
311 \newcommand{\TV}{\den{T_V}}
312 \newcommand{\tenvm}{\ddot{\nabla}}
313 \renewcommand{\tb}[1]{\triangleright#1\triangleleft}
314 \newcommand{\unbindvar}[2]{\ti{unbindvar}\ \db{#1}\ #2}
315 \newcommand{\unbindcon}[2]{\ti{unbindcon}\ \db{#1}\ #2}
316
317 %
318 % \newcommand{\bindnone}{\ab{[], []}}
319 % \newcommand{\bindvar}[2]{\ab{[\,#1 \mapsto #2\,], []}}
320 % \newcommand{\bindcon}[2]{\ab{[], [\,#1 \mapsto #2\,]}}
321 % \newcommand{\bindconlarge}[4]{
322 %  \langle [], [\,#1 \mapsto \langle \pile{#2 \\ #3 \rangle\,] #4 \rangle}}
323 % \newcommand{\bindmod}[2]{[\,#1 \mapsto #2\,]}
324 %
325 % Haskell syntax macros: math mode assumed
326 \newcommand{\system}[2]{#1@;;@\cdots@;;@#2}
327 \newcommand{\module}[4]{module\ #1@:@\ #2\ #3\ #4}
328 %%% \newcommand{\exportnone}{\,}
329 %%% \newcommand{\export}[1]{@export@\ #1@;@}
330 %%% \newcommand{\importnone}{\,}
331 %%% \newcommand{\importcomb}[2]{#1\ #2}
332 %%% \newcommand{\import}[1]{@import@\ #1@;@}
333 %%% \newcommand{\importwith}[2]{@import@\ #1\ #2@;@}
334 %%% \newcommand{\rename}[2]{#1@<-@#2}
335 %%% \newcommand{\declcomb}[2]{#1\ @;;@\ #2}
336 \newcommand{\exposing}[1]{@expose@\ #1}
337 \newcommand{\hiding}[1]{@hide@\ #1}
338 \newcommand{\importnone}{\;}
339 \newcommand{\importcomb}[2]{#1\ @;;@\ #2}
340 \newcommand{\import}[2]{@import@\ #1\ #2}
341 \newcommand{\rename}[2]{#1\ @=@\ #2}
342 \newcommand{\declcomb}[2]{#1\ @;;@\ #2}
343
344 \newcommand{\type}[2]{@type@\ #1\ @=@\;#2}
345 \newcommand{\data}[2]{@data@\ #1\ @=@\;#2}
346 \newcommand{\tuple}[2]{@tuple@\ #1\ @=@\;#2} %%% NEW!
347 \newcommand{\view}[3]{@view@\ #1\ @=@\;#2\ @where@\ @{@\ #3\ @}@}
348 \newcommand{\class}[2]{@class@\ #1\ @where@\ @{@\ #2\ @}@}
349 \newcommand{\instance}[2]{@instance@\ #1\ @where@\ @{@\ #2\ @}@}
350 \newcommand{\signature}[2]{#1\ @::@\ #2}
351 \newcommand{\binding}[2]{#1\ @=@\ #2}
352 \newcommand{\lamexpr}[2]{@\@ #1 @->@ #2}
353 % While lambda defs. change...  if change, take care of preceding line MMG
354 \newcommand{\lamb}{@\ @}
355 \newcommand{\whereexpr}[2]{#1\ @where@\ @{@\ #2\ @}@}
356 \newcommand{\compexpr}[2]{@[@#1\ @|@\ #2@]@}
357 \newcommand{\genclause}[2]{#1\ @<-@\ #2}
358 \newcommand{\qualcomb}[2]{#1\ @,@\ #2}
359 \newcommand{\genguard}[1]{\ #1\ }
360 \newcommand{\caseexpr}[2]{@case@\ #1\ @of@\ @{@\ #2\ @}@}
361 \newcommand{\simplecaseexpr}[5]{@case@\ #1\ @of@\ @{@\ #2\ @->@\ #3;\ #4\ @->@\ #5\ @}@} 
362 \newcommand{\iteexpr}[3]{@if@\ #1\ @then@\ #2\ @else@\ #3}
363 \newcommand{\itexpr}[2]{@if@\ #1\ @then@\ #2}
364 \newcommand{\gpat}[2]{#1\ @|@\ #2}
365 \newcommand{\aspat}[2]{#1 @ @@ @ #2}
366 \newcommand{\fclause}[2]{#1\ @=@\ #2}
367 \newcommand{\fsym}[2]{#1\ @;@\ #2}
368 \newcommand{\fpri}[2]{#1\ @;@\ @else@\ @;@\ #2}
369 \newcommand{\aclause}[2]{#1\ @->@\ #2}
370 \newcommand{\saclause}[4]{#1\ @->@\ #2;\ #3\ @->@\ #4}
371 \newcommand{\asym}[2]{#1\ @;@\ #2}
372 \newcommand{\apri}[2]{#1\ @;@\ @else@\ @;@\ #2}
373 \newcommand{\dotted}[3]{#1\ #2\ \ldots\ #3}
374 \newcommand{\functype}[2]{#1\ @->@\ #2}
375 \newcommand{\predtype}[2]{#1\ @=>@ #2}
376 \newcommand{\xp}{\dotted{x}{p_1}{p_n}}
377 \newcommand{\xpg}{\dotted{x}{p_1}{p_n\ @{@\ g\ @}@}}
378 \newcommand{\es}{e_1\ \ldots\ e_n}
379 \newcommand{\ps}{p_1\ \ldots\ p_n}
380 \newcommand{\vs}{v_1\ \ldots\ v_n} %%% NEW
381 \newcommand{\xs}{x_1\ \ldots\ x_n} %%% NEW
382 \newcommand{\cT}{\dotted{c}{T_1}{T_n}}
383 \newcommand{\cTm}{\dotted{c_i}{T_{i1}}{T_{in_i}}\, @|@\range{i=1}{m}}
384 % syntax meta-language
385 \newcommand{\arity}[1]{\tr{arity}\ #1}
386 \newcommand{\infix}[1]{\tr{infix}\ #1}
387 \newcommand{\prefix}[1]{\tr{prefix}\ #1}
388 %
389 \newcommand{\tl}[1]{{\sc #1}}
390 %OLD: \newcommand{\Haskell}{{\sc Haskell}}
391 \newcommand{\Haskell}{Haskell}
392
393 %\newcommand{\subsubsubsection}[1]{\par\noindent{\it #1}}
394 \newcommand{\subsubsubsection}{\subsubsection*}
395
396 %\sloppy
397
398 % a few hyphenation patterns, anyone?
399 \hyphenation{da-ta-type da-ta-types}
400 \hyphenation{Has-kell}
401
402
403 \begin{document}
404
405 \input{iso-chars}
406
407 % Set the float fractions to sensible values
408 \setcounter{topnumber}{2}
409 \setcounter{bottomnumber}{0}
410 \setcounter{totalnumber}{2}
411 \setcounter{dbltopnumber}{2}
412 \renewcommand{\textfraction}{0.1}
413 \renewcommand{\floatpagefraction}{0.9}
414 \renewcommand{\dblfloatpagefraction}{0.9}
415
416 \setcounter{page}{0}
417
418 \begin{titlepage}
419
420 \setcounter{page}{0}
421
422 \outline{
423 \vspace{.3in}
424 \begin{center}
425 {\LARGE\bf Report on the} \\[.1in]
426 {\LARGE\bf Programming Language} \\[.3in]
427 {\huge\bf Haskell 98} \\[.3in]
428 {\Large\bf A Non-strict, Purely Functional Language} \\[.3in]
429 {\large\bf Revised: FILL IN DATE!!}
430 \end{center}
431 \vspace{.15in}
432 \begin{center} \large
433 \begin{tabular}{l@@{\hspace{5mm}}l}
434 Simon Peyton Jones$^8$ [editor] & John Hughes$^3$ [editor] \\
435 Lennart Augustsson$^3$          & Dave Barton$^7$ \\
436 Brian Boutel$^4$                & Warren Burton$^5$ \\
437 Joseph Fasel$^6$                & Kevin Hammond$^2$ \\
438 Ralf Hinze$^{12}$               & Paul Hudak$^1$ \\
439 Thomas Johnsson$^3$             & Mark Jones$^9$ \\
440 John Launchbury$^{14}$          & Erik Meijer$^{10}$ \\
441 John Peterson$^1$               & Alastair Reid$^1$ \\
442 Colin Runciman$^{13}$           & Philip Wadler$^{11}$
443 \end{tabular}
444 \end{center}
445 \vspace{.15in}
446
447 \begin{quotation} \noindent
448 Authors' affiliations:
449 (1)~Yale University
450 (2)~University of St.~Andrews
451 (3)~Chalmers University of Technology
452 (4)~Victoria University of Wellington
453 (5)~Simon Fraser University
454 (6)~Los Alamos National Laboratory
455 (7)~Intermetrics
456 (8)~Microsoft Research, Cambridge
457 (9)~University of Nottingham
458 (10)~Utrecht University
459 (11)~Bell Labs
460 (12)~University of Bonn
461 (13)~York University
462 (14)~Oregon Graduate Institute
463 \end{quotation}
464 \vspace{.2in}
465
466 \begin{center}
467 Copyright (c) Simon Peyton Jones and John Hughes. 
468 \end{center}
469 {\em The authors intend this Report to belong to the entire Haskell
470 community, and so we grant permission to copy and distribute it for
471 any purpose, provided that it is reproduced in its entirety,
472 including this Notice. Modified versions of this Report may also be
473 copied and distributed for any purpose, provided that the modified
474 version is clearly presented as such, and that it does not claim to be
475 a definition of the language Haskell 98.}
476 }
477
478 % \outline{
479 % \vspace{.3in}
480 % \begin{center}
481 % {\LARGE\bf Report on the} \\[.1in]
482 % {\LARGE\bf Programming Language} \\[.3in]
483 % {\huge\bf Haskell} \\[.3in]
484 % {\Large\bf A Non-strict, Purely Functional Language} \\[.3in]
485 % {\Large\bf Version 1.3} \\[.1in]
486 % {\large\bf 1st June 1995}
487 % \end{center}
488 % \vspace{.15in}
489 % \begin{center} \large
490 % Kevin Hammond$^1$ [editor] \\
491 % Lennart Augustsson$^2$ \\
492 % Brian Boutel$^3$ \\
493 % Warren Burton$^4$ \\
494 % Joseph Fasel$^5$ \\
495 % Andy Gordon$^6$ \\
496 % Mark Jones$^7$ \\
497 % John Peterson$^8$  \\
498 % Simon Peyton Jones$^1$ \\
499 % \end{center}
500 % \vspace{.15in}
501
502 % \begin{quotation} \noindent
503 % Authors' affiliations:
504 % (1)~University of Glasgow,
505 % (2)~Chalmers University of Technology,
506 % (3)~Victoria University of Wellington,
507 % (4)~Simon Fraser University,
508 % (5)~Los Alamos National Laboratory,
509 % (6)~Cambridge University,
510 % (7)~Nottingham University,
511 % (8)~Yale University.
512 % \end{quotation}
513 % \vspace{.2in}
514 % }
515
516 \end{titlepage}
517
518 \pagenumbering{roman}
519
520 \clearpage
521 \clearpage
522 \tableofcontents
523 \startnewstuff
524
525 \parskip=10pt plus2pt minus2pt
526 \setlength{\parindent}{0cm}
527
528 %\input{preface-10}
529 %\startnewstuff
530 %\input{preface-11}
531 %\startnewstuff
532 %\input{preface-12}
533 %\startnewstuff
534 %\pagestyle{myheadings}
535 \input{preface-13}
536 %\markboth{\rm \thepage\hfil \sl \leftmark}{{\sl \rightmark}\hfil \rm\thepage}
537 \pagestyle{headings}
538 \startnewstuff
539 \pagenumbering{arabic}
540
541 \input{intro}\startnewsection
542 \input{lexemes}\startnewsection
543 \input{exps}\startnewsection
544 \input{decls}\startnewsection
545 \input{modules}\startnewsection
546 \input{basic}\startnewsection
547 %%\input{io}%
548 %\setcounter{section}{6}
549 \input{io-13}%
550 %%
551 %%\startnewstuff
552 \startnewsection
553 \appendix
554 \input{standard-prelude}\startnewsection
555 %\input{libraries}\startnewsection
556 \input{syntax-iso}\startnewsection
557 \input{literate}\startnewsection
558 %% \input{short_semantics}\startnewsection
559 %%\input{iosemant}\startnewsection
560 %%\input{iooptions}\startnewsection
561 \input{derived}\startnewsection
562 \input{pragmas}
563 %%
564 \startnewstuff
565 % insert the extra indexing things LAST
566 \input{index-extra}
567
568 % Add a contents line for the References -- may be off by one page
569 \addcontentsline{toc}{section}{References}
570 \bibliographystyle{plain}
571 \bibliography{haskell}
572 %
573 \startnewstuff
574 \printindex
575 \end{document}
576
577 % Local Variables: 
578 % mode: latex
579 % End: