Latin-1-to-UTF8 pre-processor example for docs from Christian Maeder
[ghc-hetmet.git] / docs / users_guide / 6.6-notes.xml
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <sect1 id="release-6-6">
3   <title>Release notes for version 6.6</title>
4
5   <sect2>
6     <title>User-visible compiler changes</title>
7     <itemizedlist>
8       <listitem>
9         <para>
10           GHC now supports SMP:
11           when you compile with <option>-threaded</option>, you now get
12           an RTS flag <option>-N</option> that allows you to specify the
13           number of OS threads that GHC should use. Defaults to 1.
14           See <xref linkend="sec-using-smp" /> and <xref
15           linkend="lang-parallel" />.
16         </para>
17       </listitem>
18       <listitem>
19         <para>
20           GHC now handles impredicative polymorphism; see <xref linkend="impredicative-polymorphism" />.
21         </para>
22       </listitem>
23       <listitem>
24         <para>
25           There are significant changes to the way scoped type variables work,
26           and some programs that used to compile may no longer do so.
27           The new story is documented in  <xref linkend="scoped-type-variables" />.
28           (<ulink url="http://www.haskell.org/pipermail/glasgow-haskell-users/2006-January/009565.html"> Simon's e-mail</ulink>
29           gives some background, but the user manual should be complete (tell
30           us if not), and
31           certainly takes precedence if there is any conflict.)
32         </para>
33       </listitem>
34       <listitem>
35         <para>
36           GHC now supports bang patterns to require a function is strict
37           in a given argument, e.g.
38           <programlisting>
39     f (!x, y) = [x,y]</programlisting>
40           is equivalent to
41           <programlisting>
42     f (x, y) | x `seq` False = undefined
43              | otherwise = [x,y]</programlisting>
44           See <xref linkend="sec-bang-patterns" /> for more details.
45         </para>
46       </listitem>
47       <listitem>
48         <para>
49           The restriction that you cannot use two packages together if
50           they contain a module with the same name has been removed.
51           In implementation terms, the package name is now included in
52           every exported symbol name in the object file, so that
53           modules with the same name in different packages do not
54           clash.  See <xref linkend="package-overlaps" />.
55         </para>
56       </listitem>
57       <listitem>
58         <para>
59           GHC now treats source files as UTF-8 (ASCII is a strict
60           subset of UTF-8, so ASCII source files will continue to
61           work as before). However, invalid UTF-8 sequences are
62           ignored in comments, so ASCII code with comments in, for
63           example, Latin-1 will also work.
64         </para>
65
66         <para>
67           A way to have Latin-1 source files pre-processed by GHC is
68           described in <xref linkend="pre-processor" />.
69         </para>
70       </listitem>
71       <listitem>
72         <para>
73           GADTs can now use record syntax. Also, if the datatype could
74           have been declared with Haskell 98 syntax then deriving
75           clauses are permitted. For more info see <xref linkend="gadt" />.
76         </para>
77       </listitem>
78       <listitem>
79         <para>
80           There is a new pragma <literal>LANGUAGE</literal> which allows
81           extensions to be specified portably, i.e. without having to
82           resort to the <literal>OPTIONS_GHC</literal> pragma and giving
83           GHC-specific options. The arguments to the pragma are the same
84           extensions that Cabal knows about. More info in
85           <xref linkend="language-pragma" />.
86         </para>
87       </listitem>
88       <listitem>
89         <para>
90           When you use <command>ghc --make</command>, GHC will now take
91           the executable filename from the name of the file containing
92           the <literal>Main</literal> module rather than using
93           <filename>a.out</filename>. The <filename>.exe</filename>
94           extension is appended on Windows, and it can of course be
95           overridden with <option>-o</option>.
96         </para>
97       </listitem>
98       <listitem>
99         <para>
100           GHC's garbage collector now deals more intelligently with
101           mutable data, so you mostly no longer need to worry about GC
102           performance when a lot of memory is taken up by
103           <literal>STArray</literal>s, <literal>IOArray</literal>s,
104           <literal>STRef</literal>s or <literal>IORef</literal>s.
105           For more details see
106           <ulink url="http://hackage.haskell.org/trac/ghc/ticket/650">trac bug #650</ulink>.
107         </para>
108       </listitem>
109       <listitem>
110         <para>
111           GHC now allows more generalisation when typing mutually
112           recursive bindings, resulting in more programs being accepted.
113           See <xref linkend="typing-binds" /> for more details.
114         </para>
115       </listitem>
116       <listitem>
117         <para>
118           The rules for instance declarations have been further relaxed.
119           You are now permitted to have instances whose heads contain
120           only type variables, e.g.
121           <programlisting>
122     instance C a</programlisting>
123           and instances whose constraints are not only type variables,
124           e.g.
125           <programlisting>
126     instance C2 Int a => C3 [a] b</programlisting>
127           For more details, see <xref linkend="instance-rules" />.
128         </para>
129       </listitem>
130       <listitem>
131         <para>
132             The following flags (and, where appropriate, their inverses)
133             used to be static (can only be given on
134             the command line) but are now dynamic (can also be given in
135             a <literal>GHC_OPTIONS</literal> pragma or with
136             <literal>:set</literal> in GHCi):
137             <option>-c</option>,
138             <option>-hcsuf</option>,
139             <option>-hidir</option>,
140             <option>-hisuf</option>,
141             <option>-o</option>,
142             <option>-odir</option>,
143             <option>-ohi</option>,
144             <option>-osuf</option>,
145             <option>-keep-hc-file</option>,
146             <option>-keep-s-file</option>,
147             <option>-keep-raw-s-file</option>,
148             <option>-keep-tmp-files</option>,
149             <option>-tmpdir</option>,
150             <option>-i</option>,
151             <option>-package</option>,
152             <option>-hide-package</option>,
153             <option>-ignore-package</option>,
154             <option>-package-conf</option>,
155             <option>-no-user-package-conf</option>,
156             <option>-fcontext-stack</option>,
157             <option>-fexcess-precision</option>,
158             <option>-fignore-asserts</option>,
159             <option>-fignore-interface-pragmas</option>,
160             <option>-I</option>,
161             <option>-framework</option>,
162             <option>-framework-path</option>,
163             <option>-l</option>,
164             <option>-L</option>,
165             <option>-main-is</option>,
166             <option>-no-hs-main</option>,
167             <option>-split-objs</option>,
168             <option>-pgmL</option>,
169             <option>-pgmP</option>,
170             <option>-pgmc</option>,
171             <option>-pgma</option>,
172             <option>-pgml</option>,
173             <option>-pgmdll</option>,
174             <option>-pgmdep</option>,
175             <option>-pgmF</option>,
176             <option>-optl</option>,
177             <option>-optdll</option>,
178             <option>-optdep</option>,
179             <option>-fno-asm-mangling</option>.
180             See <xref linkend="static-dynamic-flags" /> for more on
181             the meaning of static and dynamic flags, and
182             <xref linkend="flag-reference" /> for more on the flags
183             themselves.
184         </para>
185       </listitem>
186       <listitem>
187         <para>
188           There is a new flag <option>-x</option> for overriding the
189           default behaviour for source files; see
190           <xref linkend="overriding-suffixes" /> details.
191         </para>
192       </listitem>
193       <listitem>
194         <para>
195           The
196           <option>-no-recomp</option><indexterm><primary><option>-no-recomp</option></primary></indexterm>
197           option is now called
198           <option>-fforce-recomp</option><indexterm><primary><option>-fforce-recomp</option></primary></indexterm>.
199           (the old name is still accepted for backwards compatibility,
200           but will be removed in the future).
201         </para>
202       </listitem>
203       <listitem>
204         <para>
205           The <option>-fglobalise-toplev-names</option>
206           flag has been removed.
207         </para>
208       </listitem>
209       <listitem>
210         <para>
211           The <option>-fallow-overlapping-instances</option> flag is
212           implied by the <option>-fallow-incoherent-instances</option>
213           flag.
214         </para>
215       </listitem>
216       <listitem>
217         <para>
218           The directory that the <filename>foo_stub.c</filename> and
219           <filename>foo_stub.h</filename> files are put in can now be
220           controlled with the <option>-stubdir</option> flag.
221           See <xref linkend="options-output" /> for more details.
222         </para>
223       </listitem>
224       <listitem>
225         <para>
226           When the <option>-fno-implicit-prelude</option> is given,
227           the equality test performed when pattern matching against an
228           overloaded numeric literal now uses the
229           <literal>(==)</literal> in scope, rather than the one from
230           <literal>Prelude</literal>. Likewise, the subtraction and
231           inequality test performed when pattern matching against
232           <literal>n+k</literal> patterns uses the
233           <literal>(-)</literal> and <literal>(>=)</literal> in scope.
234         </para>
235       </listitem>
236       <listitem>
237         <para>
238           Another change to <option>-fno-implicit-prelude</option>:
239           with the exception of the arrow syntax, the types of
240           functions used by sugar (such as do notation, numeric
241           literal patterns) need not match the types of the
242           <literal>Prelude</literal> functions normally used.
243         </para>
244       </listitem>
245       <listitem>
246         <para>
247           The <literal>InstalledPackageInfo</literal> syntax has
248           changed. Now
249           instead of <literal>extra-libs</literal> we have
250           <literal>extra-libraries</literal>,
251           instead of <literal>extra-hugs-opts</literal> we have
252           <literal>hugs-options</literal>,
253           instead of <literal>extra-cc-opts</literal> we have
254           <literal>cc-options</literal>,
255           instead of <literal>extra-ld-opts</literal> we have
256           <literal>ld-options</literal>,
257           and instead of <literal>extra-frameworks</literal> we have
258           <literal>frameworks</literal>.
259           See <xref linkend="installed-pkg-info" /> for details.
260         </para>
261       </listitem>
262       <listitem>
263         <para>
264           If you <literal>newtype</literal> the IO monad, e.g.
265           <programlisting>
266     newtype MyIO a = MyIO (IO a)</programlisting>
267           then GHC will now allow you to have FFI calls return
268           <literal>MyIO <replaceable>t</replaceable></literal>
269           rather than just
270           <literal>IO <replaceable>t</replaceable></literal>.
271           See <xref linkend="ffi-newtype-io"/>
272         </para>
273       </listitem>
274       <listitem> <para> GHC's mechansim for deriving user-defined classes
275           for newtypes has been further generalised, to multi-parameter type
276           classes and higher-kinded types.  See <xref
277           linkend="newtype-deriving"/>.
278           </para></listitem>
279       <listitem>
280         <para>
281           By default, pattern bindings in GHC are now monomorphic.
282           This means that some valid Haskell 98 programs will get
283           rejected, but we believe they will be few in number.
284           To revert to the old behaviour use the
285           <option>-fno-mono-pat-binds</option> flag.
286           More details are in <xref linkend="options-language" />.
287         </para>
288       </listitem>
289       <listitem>
290         <para>
291           GHCi already does more defaulting than Haskell 98 so that, for
292           example, <literal>reverse []</literal> shows a result rather
293           than giving an ambiguous type variable error. There is now a
294           flag <option>-fextended-default-rules</option> to use these
295           defaulting rules with GHC too.
296           More details are in <xref linkend="extended-default-rules" />.
297         </para>
298       </listitem>
299       <listitem>
300         <para>
301           You can now give both class and instance declarations in
302           <filename>.hs-boot</filename> files. More details in
303           <xref linkend="mutual-recursion" />.
304         </para>
305       </listitem>
306       <listitem>
307         <para>
308           Linear implicit parameters have been scheduled for removal for some
309           time.  In 6.6 we've removed them from the user manual, and they may
310           well disappear from the compiler itself in 6.6.1.
311         </para>
312       </listitem>
313       <listitem>
314         <para>
315           If the program is idle for a certain amount of time then GHC
316           will now take the opportunity to do a major garbage collection.
317           The amount of idle time that is required before that happens
318           is controlled by the new <literal>-I</literal> RTS flag.
319           There is more detail in <xref linkend="rts-options-gc" />.
320         </para>
321       </listitem>
322       <listitem>
323         <para>
324           It is now possible to control the frequency that the RTS clock
325           ticks at with the new <literal>-V</literal> RTS flag. This is
326           normally handled automatically by other flags, but this flag
327           is needed if you want to increase the resolution of the time
328           profiler.
329           For more details see <xref linkend="rts-options-misc" />.
330         </para>
331       </listitem>
332       <listitem>
333         <para>
334           The old syntax for FFI declarations (deprecated since 5.04)
335           is no longer accepted.
336         </para>
337       </listitem>
338       <listitem>
339         <para>
340           The <option>-split-objs</option> flag, which when used to compile
341           libraries means executables using the library will be smaller,
342           can now be used with <option>--make</option> and hence
343           can be used by cabal.
344           See <xref linkend="options-linker" /> for more information.
345         </para>
346       </listitem>
347       <listitem>
348         <para>
349           Template Haskell used to have limited support for type signatures in 
350           patterns, but since that design is in flux for Haskell (let alone
351           Template Haskell), we've removed type signatures in patterns from
352           Template Haskell.
353         </para>
354       </listitem>
355       <listitem>
356         <para>
357           GHC now supports postfix operators, as a simple generalisation of
358           left sections (<xref linkend="postfix-operators"/>).
359         </para>
360       </listitem>
361       <listitem>
362         <para>
363           Parallel arrays, as enabled by <literal>-fparr</literal>, no
364           longer work.  They'll be coming back shortly, in full glory.
365         </para>
366       </listitem>
367     </itemizedlist>
368   </sect2>
369
370   <sect2>
371     <title>GHCi changes</title>
372
373     <itemizedlist>
374       <listitem>
375         <para>
376           GHCi now allows tab completion of in-scope names and modules
377           on platforms that use readline (i.e. not Windows).
378         </para>
379       </listitem>
380       <listitem>
381         <para>
382           GHCi now has a <literal>:main</literal> command that allows
383           you to call the <literal>main</literal> function with
384           command-line arguments.
385           See <xref linkend="ghci-commands" /> for more information.
386         </para>
387       </listitem>
388       <listitem>
389         <para>
390           GHCi now has <literal>:ctags</literal> and
391           <literal>:etags</literal> commands to generate tags files for
392           vi-style and emacs-style editors respectively.
393           See <xref linkend="ghci-commands" /> for more information.
394         </para>
395       </listitem>
396       <listitem>
397         <para>
398           GHCi now has an <literal>:edit</literal> command which pops
399           up an editor on the most recently loaded file, or a
400           specified file.  See <xref linkend="ghci-commands" /> for
401           more information.
402         </para>
403       </listitem>
404       <listitem>
405         <para>
406           GHCi now invokes <literal>print</literal> by default on the
407           result of IO actions and bindings at the prompt.  This is
408           occasionally not what you want, so it can be disabled (at
409           least for bindings) with 
410           <literal>:set -fno-print-bind-result</literal>.  See <xref
411           linkend="ghci-stmts" />.</para>
412       </listitem>
413     </itemizedlist>
414   </sect2>
415
416   <sect2>
417     <title>Libraries</title>
418     <para>
419       Libraries are now divided into core libraries (those that are
420       necessary to build GHC) and extra libraries. Decoupling the extra
421       libraries means that they can release independently of GHC
422       releases, and makes development builds of GHC quicker as they no
423       longer need to build unnecessary libraries.
424     </para>
425
426     <para>
427       The hslibs libraries have finally been removed.
428     </para>
429   </sect2>
430
431   <sect2>
432     <title>Core Libraries</title>
433     <sect3>
434       <title>base</title>
435       <itemizedlist>
436         <listitem>
437           <para>
438             Version number 2.0 (was 1.0).
439           </para>
440         </listitem>
441         <listitem>
442           <para>
443             We now have <literal>Read</literal> and
444             <literal>Show</literal> instances for up to 15-tuples (used
445             to be up to 5-tuples).
446           </para>
447         </listitem>
448         <listitem>
449           <para>
450             New module <literal>Control.Applicative</literal> that
451             describes a structure intermediate between a functor and
452             a monad: it provides pure expressions and sequencing, but
453             no binding.
454           </para>
455         </listitem>
456         <listitem>
457           <para>
458             <literal>Control.Exception</literal> now exports
459             <literal>bracketOnError</literal>, which behaves like
460             <literal>bracket</literal> but only runs the final
461             action if the main action raised an error.
462           </para>
463         </listitem>
464         <listitem>
465           <para>
466             There is a new module
467             <literal>Control.Monad.Instances</literal> which
468             provides <literal>Monad</literal> and
469             <literal>Functor</literal> instances for
470             <literal>((->) r)</literal> (were in
471             <literal>mtl</literal>'s
472             <literal>Control.Monad.Reader</literal>), 
473             a <literal>Functor</literal> instance for
474             <literal>(Either a)</literal> (was in <literal>mtl</literal>'s
475             <literal>Control.Monad.Error</literal>) and a
476             <literal>Functor</literal> instance for
477             <literal>((,) a)</literal> (new).
478           </para>
479         </listitem>
480         <listitem>
481           <para>
482             The <literal>MonadFix</literal> instance for
483             <literal>((->) r)</literal> is now in
484             <literal>Control.Monad.Fix</literal> (was in
485             <literal>mtl</literal>'s
486             <literal>Control.Monad.Reader</literal>).
487           </para>
488         </listitem>
489         <listitem>
490           <para>
491             <literal>Control.Monad.ST</literal> now exports
492             <literal>unsafeSTToIO</literal>.
493           </para>
494         </listitem>
495         <listitem>
496           <para>
497             The <literal>HasBounds</literal> class has been removed from
498             <literal>Data.Array.Base</literal>, and its
499             <literal>bounds</literal> method is now in the
500             <literal>IArray</literal> class. The
501             <literal>MArray</literal> class
502             has also gained a method <literal>getBounds</literal>.
503           </para>
504         </listitem>
505         <listitem>
506           <para>
507             <literal>Data.Array.Base</literal> now provides an
508             <literal>MArray (STArray s) e (Lazy.ST s)</literal>
509             instance.
510           </para>
511         </listitem>
512         <listitem>
513           <para>
514             <literal>Data.Array.Storable</literal> now exports a
515             function <literal>unsafeForeignPtrToStorableArray</literal>.
516           </para>
517         </listitem>
518         <listitem>
519           <para>
520             The new <literal>Data.ByteString</literal> hierarchy
521             provides time and space-efficient byte vectors.
522             The old <literal>Data.PackedString</literal> module is now
523             deprecated as a result, although there is not yet a
524             replacement if you need full unicode support.
525           </para>
526         </listitem>
527         <listitem>
528           <para>
529             <literal>GHC.Exts</literal> now provides a function
530             <literal>inline</literal> which, provided the RHS is visible
531             to the compiler, forcibly inlines its argument.
532             Otherwise, it acts like <literal>id</literal>.
533             For more details, see <xref linkend="special-ids" />.
534           </para>
535         </listitem>
536         <listitem>
537           <para>
538             <literal>GHC.Exts</literal> now provides a function
539             <literal>lazy</literal> which forces GHC to think that its
540             argument is lazy in its first argument.
541             For more details, see <xref linkend="special-ids" />.
542           </para>
543         </listitem>
544         <listitem>
545           <para>
546             <literal>Data.FiniteMap</literal> has been removed
547             (deprecated since 6.4). Use <literal>Data.Map</literal>
548             instead.
549           </para>
550         </listitem>
551         <listitem>
552           <para>
553             <literal>Data.Char</literal> now exports
554             <literal>isLetter</literal>,
555             <literal>isMark</literal>,
556             <literal>isNumber</literal>,
557             <literal>isPunctuation</literal>,
558             <literal>isSymbol</literal>,
559             <literal>isSeparator</literal>,
560             <literal>isAsciiUpper</literal>,
561             <literal>isAsciiLower</literal> and
562             <literal>toTitle</literal>.
563             It also exports a function
564             <literal>generalCategory</literal> that tells you the
565             category of a character in terms of a datatype
566             <literal>GeneralCategory</literal>.
567           </para>
568         </listitem>
569         <listitem>
570           <para>
571             <literal>Data.Dynamic</literal> now exports a function
572             <literal>dynTypeRep</literal>.
573           </para>
574         </listitem>
575         <listitem>
576           <para>
577             There is a new module <literal>Data.Eq</literal> which
578             just exports the <literal>Eq</literal> class.
579             Likewise, a new module <literal>Data.Ord</literal>
580             exports the <literal>Ord</literal> class, as well as the
581             handy <literal>comparing</literal> function.
582           </para>
583         </listitem>
584         <listitem>
585           <para>
586             There is a new module <literal>Data.Fixed</literal>
587             providing fixed-precision arithmetic.
588           </para>
589         </listitem>
590         <listitem>
591           <para>
592             There is a new module <literal>Data.Foldable</literal>
593             providing a class for foldable datatypes. It gives instances
594             for <literal>Maybe</literal>, <literal>[]</literal> and
595             <literal>Array i</literal>.
596           </para>
597         </listitem>
598         <listitem>
599           <para>
600             There is a new module <literal>Data.Traversable</literal>
601             providing a class for data structures that can be traversed
602             from left to right. It gives instances
603             for <literal>Maybe</literal>, <literal>[]</literal> and
604             <literal>Array i</literal>.
605           </para>
606         </listitem>
607         <listitem>
608           <para>
609             <literal>Data.FunctorM</literal> has been deprecated;
610             use <literal>Data.Foldable</literal> and
611             <literal>Data.Traversable</literal> instead.
612           </para>
613         </listitem>
614         <listitem>
615           <para>
616             The <literal>toConstr</literal> definitions for tuples in
617             <literal>Data.Generics.Instances</literal> now actually
618             evaluate their arguments to tuples before returning
619             anything.
620           </para>
621         </listitem>
622         <listitem>
623           <para>
624             <literal>Data.IntMap</literal> now exports
625             <literal>notMember</literal>,
626             <literal>alter</literal>,
627             <literal>mapMaybe</literal>,
628             <literal>mapMaybeWithKey</literal>,
629             <literal>mapEither</literal> and
630             <literal>mapEitherWithKey</literal>.
631             It also has <literal>Monoid</literal>,
632             <literal>Foldable</literal> and <literal>Read</literal>
633             instances.
634           </para>
635         </listitem>
636         <listitem>
637           <para>
638             <literal>Data.IntSet</literal> now exports
639             <literal>notMember</literal>. It also has
640             <literal>Monoid</literal> and <literal>Read</literal>
641             instances.
642           </para>
643         </listitem>
644         <listitem>
645           <para>
646             <literal>Data.Map</literal> now exports
647             <literal>notMember</literal>,
648             <literal>alter</literal>,
649             <literal>mapMaybe</literal>,
650             <literal>mapMaybeWithKey</literal>,
651             <literal>mapEither</literal>,
652             <literal>mapEitherWithKey</literal>,
653             <literal>minView</literal> and
654             <literal>maxView</literal>.
655             It also has <literal>Monoid</literal>,
656             <literal>Traversable</literal>, <literal>Foldable</literal>
657             and <literal>Read</literal> instances.
658           </para>
659         </listitem>
660         <listitem>
661           <para>
662             <literal>Data.Set</literal> now exports
663             <literal>notMember</literal>,
664             <literal>minView</literal> and
665             <literal>maxView</literal>.
666             It also has <literal>Monoid</literal>,
667             <literal>Foldable</literal>
668             and <literal>Read</literal> instances.
669           </para>
670
671           <para>
672             The old, deprecated (since 6.4) interface consisting of
673             <literal>emptySet</literal>,
674             <literal>mkSet</literal>,
675             <literal>setToList</literal>,
676             <literal>unitSet</literal>,
677             <literal>elementOf</literal>,
678             <literal>isEmptySet</literal>,
679             <literal>cardinality</literal>,
680             <literal>unionManySets</literal>,
681             <literal>minusSet</literal>,
682             <literal>mapSet</literal>,
683             <literal>intersect</literal>,
684             <literal>addToSet</literal> and
685             <literal>delFromSet</literal> has been removed.
686           </para>
687         </listitem>
688         <listitem>
689           <para>
690             <literal>Data.Monoid</literal> no longer contains the
691             <literal>Monoid</literal>
692             instances for <literal>Map</literal>,
693             <literal>IntMap</literal>, <literal>Set</literal> and
694             <literal>IntSet</literal>. They have been moved to their own
695             modules, as above. The <literal>(a -> a)</literal> instance
696             has been replaced with a
697             <literal>Monoid b => Monoid (a -> b)</literal> instance.
698             The module also now exports
699             <literal>Dual</literal>,
700             <literal>Endo</literal>,
701             <literal>All</literal>,
702             <literal>Any</literal>,
703             <literal>Sum</literal> and
704             <literal>Product</literal> types, and
705             <literal>Monoid</literal> instances for them.
706           </para>
707         </listitem>
708         <listitem>
709           <para>
710             There is a new module <literal>Data.Sequence</literal>
711             for finite sequences. The <literal>Data.Queue</literal>
712             module is now deprecated in favour of this faster, more
713             featureful replacement.
714           </para>
715         </listitem>
716         <listitem>
717           <para>
718             <literal>Data.Tree</literal> now has
719             <literal>Data</literal>, <literal>Typeable</literal>,
720             <literal>Traversable</literal> and
721             <literal>Foldable</literal>
722             instances for the
723             <literal>Tree</literal> datatype.
724           </para>
725         </listitem>
726         <listitem>
727           <para>
728             <literal>Data.Typeable</literal> now uses
729             <option>-fallow-overlapping-instances</option>, so the
730             generic instances can be overriden for your own datatypes.
731           </para>
732         </listitem>
733         <listitem>
734           <para>
735             <literal>Debug.Trace</literal> now exports
736             <literal>traceShow</literal>, which is the same as
737             <literal>trace</literal> except its first argument can be
738             any showable thing rather than being required to be a
739             string.
740           </para>
741         </listitem>
742         <listitem>
743           <para>
744             <literal>Foreign.C.Types</literal> now also defines
745             <literal>CIntPtr</literal>,
746             <literal>CUIntPtr</literal>,
747             <literal>CIntMax</literal> and
748             <literal>CUIntMax</literal>.
749           </para>
750         </listitem>
751         <listitem>
752           <para>
753             <literal>Foreign.ForeignPtr</literal> now exports
754             <literal>FinalizerEnvPtr</literal>,
755             <literal>newForeignPtrEnv</literal> and
756             <literal>addForeignPtrFinalizerEnv</literal>.
757             Together, these allow the use of finalizers which are passed
758             an additional environment parameter.
759           </para>
760         </listitem>
761         <listitem>
762           <para>
763             <literal>Foreign.Marshal.Utils</literal> no longer exports
764             the <literal>withObject</literal> function, deprecated since
765             5.04; use <literal>with</literal> instead.
766           </para>
767         </listitem>
768         <listitem>
769           <para>
770             Foreign.Ptr now also defines
771             <literal>IntPtr</literal>,
772             <literal>ptrToIntPtr</literal>,
773             <literal>intPtrToPtr</literal>,
774             <literal>WordPtr</literal>,
775             <literal>ptrToWordPtr</literal> and
776             <literal>wordPtrToPtr</literal>.
777           </para>
778         </listitem>
779         <listitem>
780           <para>
781             There are now <literal>Bounded</literal> instances for up to
782             15-tuples (used to be up to 4-tuples).
783           </para>
784         </listitem>
785         <listitem>
786           <para>
787             The <literal>Text.Html</literal> and
788             <literal>Text.Html.BlockTable</literal> modules have now
789             been removed, with the new <literal>html</literal> and
790             <literal>xhtml</literal> packages providing replacements.
791           </para>
792         </listitem>
793         <listitem>
794           <para>
795             <literal>Text.Read</literal> now exports a function
796             <literal>parens</literal> which parses a value in an
797             arbitrary number of parentheses.
798           </para>
799         </listitem>
800         <listitem>
801           <para>
802             The <literal>ForeignPtr</literal> datatype has been altered
803             to make it more efficient. There are also new functions
804             <literal>mallocPlainForeignPtr</literal> and
805             <literal>mallocPlainForeignPtrBytes</literal> which
806             do not allow you to attach a finalizer to the
807             <literal>ForeignPtr</literal>.
808           </para>
809         </listitem>
810         <listitem>
811           <para>
812             The <literal>Text.Regex</literal> and
813             <literal>Text.Regex.Posix</literal> modules have been removed.
814             Instead, use the new <literal>regex-compat</literal> package
815             for a drop-in <literal>Text.Regex</literal> replacement, or
816             the new library in the new <literal>regex-posix</literal>
817             package.
818           </para>
819         </listitem>
820       </itemizedlist>
821     </sect3>
822
823     <sect3>
824       <title>Cabal</title>
825       <itemizedlist>
826         <listitem>
827           <para>
828             Version number 1.1.6 (was 1.1.4).
829           </para>
830         </listitem>
831         <listitem>
832           <para>
833             Support for JHC, symmetric to the support for the other
834             implementations, has been added throughout.
835           </para>
836         </listitem>
837         <listitem>
838           <para>
839             Support for object splitting and building in-place
840             has been added throughout.
841           </para>
842         </listitem>
843         <listitem>
844           <para>
845             Added a <filename>debianTemplate</filename> directory with
846             templates for building Debian packages from Cabal packages.
847           </para>
848         </listitem>
849         <listitem>
850           <para>
851             There are now modules
852             <literal>Distribution.Simple.<replaceable>compiler</replaceable></literal>
853             for each of <literal>GHC</literal>, <literal>NHC</literal>,
854             <literal>Hugs</literal> and <literal>JHC</literal>.
855             The <literal>Distribution.Simple.Build</literal> and
856             <literal>Distribution.Simple.Install</literal> modules have
857             shrunk correspondingly.
858           </para>
859         </listitem>
860         <listitem>
861           <para>
862             <literal>Distribution.GetOpt</literal> is no longer a
863             visible module.
864           </para>
865         </listitem>
866         <listitem>
867           <para>
868             <literal>Distribution.Simple</literal> exports a function
869             <literal>defaultMainArgs</literal>, which is identical to
870             <literal>defaultMain</literal> except that the arguments are
871             given as a list of strings rather than being retrieved with
872             <literal>getArgs</literal>.
873           </para>
874         </listitem>
875         <listitem>
876           <para>
877             <literal>Distribution.Simple.Configure</literal>
878             no longer exports
879             <literal>LocalBuildInfo</literal>,
880             but does now export
881             <literal>configDependency</literal> and
882             <literal>configCompilerAux</literal>.
883           </para>
884         </listitem>
885         <listitem>
886           <para>
887             <literal>Distribution.Simple.LocalBuildInfo</literal> now
888             exports <literal>mkHaddockDir</literal>,
889             <literal>distPref</literal>,
890             <literal>srcPref</literal>,
891             <literal>autogenModulesDir</literal> and
892             <literal>mkIncludeDir</literal>.
893           </para>
894         </listitem>
895         <listitem>
896           <para>
897             <literal>Distribution.PackageDescription</literal> now
898             exports <literal>haddockName</literal>.
899           </para>
900         </listitem>
901         <listitem>
902           <para>
903             <literal>Distribution.Simple.Utils</literal> now exports
904             <literal>copyDirectoryRecursiveVerbose</literal>,
905             <literal>dirOf</literal>,
906             <literal>distPref</literal>,
907             <literal>haddockPref</literal> and
908             <literal>srcPref</literal>.
909             It no longer exports <literal>mkGHCiLibName</literal>.
910           </para>
911         </listitem>
912       </itemizedlist>
913     </sect3>
914
915     <sect3>
916       <title>haskell98</title>
917       <itemizedlist>
918         <listitem>
919           <para>
920             No change (version 1.0).
921           </para>
922         </listitem>
923       </itemizedlist>
924     </sect3>
925
926     <sect3>
927       <title>parsec</title>
928       <itemizedlist>
929         <listitem>
930           <para>
931             Version number 2.0 (was 1.0).
932           </para>
933         </listitem>
934         <listitem>
935           <para>
936             No other change.
937           </para>
938         </listitem>
939       </itemizedlist>
940     </sect3>
941
942     <sect3>
943       <title>readline</title>
944       <itemizedlist>
945         <listitem>
946           <para>
947             No change (version 1.0).
948           </para>
949         </listitem>
950       </itemizedlist>
951     </sect3>
952
953     <sect3>
954       <title>regex-base</title>
955       <itemizedlist>
956         <listitem>
957           <para>
958             Version 0.71.
959           </para>
960         </listitem>
961         <listitem>
962           <para>
963             New library that provides common functions for different
964             regex backends.
965           </para>
966         </listitem>
967       </itemizedlist>
968     </sect3>
969
970     <sect3>
971       <title>regex-compat</title>
972       <itemizedlist>
973         <listitem>
974           <para>
975             Version 0.71.
976           </para>
977         </listitem>
978         <listitem>
979           <para>
980             New package providing a replacement
981             <literal>Text.Regex</literal> module.
982           </para>
983         </listitem>
984       </itemizedlist>
985     </sect3>
986
987     <sect3>
988       <title>regex-posix</title>
989       <itemizedlist>
990         <listitem>
991           <para>
992             Version 0.71.
993           </para>
994         </listitem>
995         <listitem>
996           <para>
997             A new package providing POSIX regexes.
998           </para>
999         </listitem>
1000       </itemizedlist>
1001     </sect3>
1002
1003     <sect3>
1004       <title>stm</title>
1005       <itemizedlist>
1006         <listitem>
1007           <para>
1008             Version number 2.0 (was 1.0).
1009           </para>
1010         </listitem>
1011         <listitem>
1012           <para>
1013             A new module <literal>Control.Monad.STM</literal>
1014             contains the
1015             <literal>MonadPlus</literal> instance for
1016             <literal>STM</literal> and the function
1017             <literal>check</literal> (both used to be in
1018             <literal>Control.Concurrent.STM</literal>).
1019             It also re-exports
1020             <literal>STM</literal>,
1021             <literal>atomically</literal>,
1022             <literal>retry</literal>,
1023             <literal>orElse</literal> and
1024             <literal>catchSTM</literal>.
1025           </para>
1026         </listitem>
1027         <listitem>
1028           <para>
1029             A new module
1030             <literal>Control.Concurrent.STM.TArray</literal> defines
1031             <literal>TArray</literal>, a transactional array, and makes
1032             it an instance of <literal>MArray</literal>.
1033           </para>
1034         </listitem>
1035         <listitem>
1036           <para>
1037             <literal>Control.Concurrent.STM.TChan</literal> now provides
1038             a function <literal>newTChanIO</literal>, which allows
1039             <literal>TChan</literal>s to be created in the IO monad.
1040             Similarly, <literal>Control.Concurrent.STM.TMVar</literal>
1041             provides <literal>newTMVarIO</literal> and
1042             <literal>newEmptyTMVarIO</literal>, and
1043             <literal>Control.Concurrent.STM.TVar</literal> exports
1044             <literal>newTVarIO</literal>.
1045           </para>
1046         </listitem>
1047         <listitem>
1048           <para>
1049             <literal>Control.Concurrent.STM.TVar</literal> exports
1050             <literal>registerDelay</literal>.
1051           </para>
1052         </listitem>
1053         <listitem>
1054           <para>
1055             The <literal>Control.Concurrent.STM</literal> module has been
1056             updated to re-export all the new modules.
1057           </para>
1058         </listitem>
1059       </itemizedlist>
1060     </sect3>
1061
1062     <sect3>
1063       <title>template-haskell</title>
1064       <itemizedlist>
1065         <listitem>
1066           <para>
1067             Version number 2.0 (was 1.0).
1068           </para>
1069         </listitem>
1070         <listitem>
1071           <para>
1072             A <literal>Show</literal> instance is now derived for
1073             <literal>Info</literal>, <literal>Fixity</literal> and
1074             <literal>FixityDirection</literal> in
1075             <literal>Language.Haskell.TH.Syntax</literal>.
1076           </para>
1077         </listitem>
1078         <listitem>
1079           <para>
1080             In <literal>Language.Haskell.TH.Syntax</literal>, there is
1081             a type <literal>PkgName</literal> and functions
1082             <literal>mkPkgName</literal> and
1083             <literal>pkgString</literal>
1084             for dealing with package names.
1085           </para>
1086         </listitem>
1087         <listitem>
1088           <para>
1089             The <literal>patGE</literal> function in
1090             <literal>Language.Haskell.TH.Lib</literal> now takes the
1091             final expression separately to the list of statements
1092             rather than splitting it off itself.
1093           </para>
1094         </listitem>
1095       </itemizedlist>
1096     </sect3>
1097
1098     <sect3>
1099       <title>unix</title>
1100       <itemizedlist>
1101         <listitem>
1102           <para>
1103             No change (version 1.0).
1104           </para>
1105         </listitem>
1106       </itemizedlist>
1107     </sect3>
1108
1109     <sect3>
1110       <title>Win32</title>
1111       <itemizedlist>
1112         <listitem>
1113           <para>
1114             Version number 2.0 (was 1.0).
1115           </para>
1116         </listitem>
1117         <listitem>
1118           <para>
1119             Now maintained by Esa Ilari Vuokko.
1120           </para>
1121         </listitem>
1122         <listitem>
1123           <para>
1124             There is a new module
1125             <literal>System.Win32.Console</literal>
1126             providing an interface to the Windows Console API.
1127           </para>
1128         </listitem>
1129         <listitem>
1130           <para>
1131             There is a new module
1132             <literal>System.Win32.DebugApi</literal>
1133             providing an interface to the Windows DebugApi.
1134           </para>
1135         </listitem>
1136         <listitem>
1137           <para>
1138             There is a new module
1139             <literal>System.Win32.FileMapping</literal>
1140             for working with memory-mapped files.
1141           </para>
1142         </listitem>
1143         <listitem>
1144           <para>
1145             There is a new module
1146             <literal>System.Win32.SimpleMAPI</literal>
1147             for using the Windows mail API.
1148           </para>
1149         </listitem>
1150         <listitem>
1151           <para>
1152             There is a new module
1153             <literal>System.Win32.Time</literal>
1154             for using the Windows time API.
1155           </para>
1156         </listitem>
1157         <listitem>
1158           <para>
1159             <literal>iNVALID_HANDLE_VALUE</literal> has moved from
1160             <literal>Graphics.Win32.Misc</literal> to
1161             <literal>System.Win32.Types</literal>.
1162           </para>
1163         </listitem>
1164         <listitem>
1165           <para>
1166             <literal>System.Win32.File</literal> has a new
1167             function <literal>getFileInformationByHandle</literal>
1168             and associated data types.
1169           </para>
1170         </listitem>
1171         <listitem>
1172           <para>
1173             <literal>System.Win32.Info</literal> has a new
1174             function <literal>getSystemInfo</literal> and associated
1175             data types.
1176           </para>
1177         </listitem>
1178         <listitem>
1179           <para>
1180             <literal>System.Win32.Process</literal> now has many more
1181             exports.
1182           </para>
1183         </listitem>
1184         <listitem>
1185           <para>
1186             <literal>System.Win32.Types</literal> has new types
1187             <literal>LARGE_INTEGER</literal>, <literal>DDWORD</literal>
1188             and <literal>SIZE_T</literal>. It also has new helper
1189             functions <literal>ddwordToDwords</literal> and
1190             <literal>dwordsToDdword</literal> to split and combine
1191             ddwords into high and low components.
1192           </para>
1193         </listitem>
1194         <listitem>
1195           <para>
1196             <literal>System.Win32</literal> re-exports
1197             <literal>System.Win32.FileMapping</literal>,
1198             <literal>System.Win32.Time</literal>
1199             and <literal>System.Win32.Console</literal>.
1200           </para>
1201         </listitem>
1202       </itemizedlist>
1203     </sect3>
1204   </sect2>
1205
1206   <sect2>
1207     <title>Extra Libraries</title>
1208     <sect3>
1209       <title>ALUT</title>
1210       <itemizedlist>
1211         <listitem>
1212           <para>
1213             Version number 2.0 (was 1.0).
1214           </para>
1215         </listitem>
1216         <listitem>
1217           <para>
1218             <literal>Sound.ALUT.BuiltInSounds</literal> has been removed.
1219             Its <literal>Phase</literal> and <literal>Duration</literal>
1220             exports are now exported by
1221             <literal>Sound.ALUT.Loaders</literal> and its
1222             <literal>helloWorld</literal>,
1223             <literal>sine</literal>,
1224             <literal>square</literal>,
1225             <literal>sawtooth</literal>,
1226             <literal>impulse</literal> and
1227             <literal>whiteNoise</literal>
1228             exports are now constructors of the
1229             <literal>Sound.ALUT.Loaders.SoundDataSource</literal>
1230             datatype.
1231           </para>
1232         </listitem>
1233       </itemizedlist>
1234     </sect3>
1235
1236     <sect3>
1237       <title>arrows</title>
1238       <itemizedlist>
1239         <listitem>
1240           <para>
1241             Version number 0.2 (was 0.1).
1242           </para>
1243         </listitem>
1244         <listitem>
1245           <para>
1246             <literal>Control.Sequence</literal> has been removed in
1247             favour of the new <literal>Control.Applicative</literal>
1248             module in <literal>base</literal>.
1249           </para>
1250         </listitem>
1251       </itemizedlist>
1252     </sect3>
1253
1254     <sect3>
1255       <title>cgi</title>
1256       <itemizedlist>
1257         <listitem>
1258           <para>
1259             Version 2006.8.14.
1260           </para>
1261         </listitem>
1262         <listitem>
1263           <para>
1264             <literal>cgi</literal> is a new package, developing on
1265             what used to be <literal>Network.CGI</literal> in the
1266             <literal>network</literal> package.
1267           </para>
1268         </listitem>
1269       </itemizedlist>
1270     </sect3>
1271
1272     <sect3>
1273       <title>fgl</title>
1274       <itemizedlist>
1275         <listitem>
1276           <para>
1277             Version number 5.3 (was 5.2).
1278           </para>
1279         </listitem>
1280         <listitem>
1281           <para>
1282             <literal>Data.Graph.Inductive.Graph</literal> no longer
1283             exports <literal>UContext</literal>.
1284           </para>
1285         </listitem>
1286         <listitem>
1287           <para>
1288             <literal>Data.Graph.Inductive.Graph</literal> now exports
1289             <literal>delLEdge</literal>.
1290           </para>
1291         </listitem>
1292       </itemizedlist>
1293     </sect3>
1294
1295     <sect3>
1296       <title>GLUT</title>
1297       <itemizedlist>
1298         <listitem>
1299           <para>
1300             Version number remains 2.0.
1301           </para>
1302         </listitem>
1303         <listitem>
1304           <para>
1305             In <literal>Graphics.UI.GLUT.Initialization</literal>,
1306             <literal>DisplayMode</literal> has a new constructor
1307             <literal>WithAuxBuffers</literal> and
1308             <literal>DisplayCapability</literal> has a new constructor
1309             <literal>DisplayAux</literal>. These represent freeglut-only
1310             features.
1311           </para>
1312         </listitem>
1313         <listitem>
1314           <para>
1315             There are new examples in
1316             <filename>BOGLGP/Chapter03/OnYourOwn1.hs</filename>,
1317             <filename>RedBook/AAIndex.hs</filename>,
1318             <filename>RedBook/AARGB.hs</filename>,
1319             <filename>RedBook/AccAnti.hs</filename>,
1320             <filename>RedBook/AccPersp.hs</filename>,
1321             <filename>RedBook/Alpha3D.hs</filename>,
1322             <filename>RedBook/DOF.hs</filename>,
1323             <filename>RedBook/FogIndex.hs</filename>,
1324             <filename>RedBook/Multisamp.hs</filename>,
1325             <filename>RedBook/PointP.hs</filename>,
1326             <filename>RedBook/PolyOff.hs</filename>,
1327             <filename>RedBook/Stencil.hs</filename>,
1328             <filename>RedBook/Stroke.hs</filename> and
1329             <filename>RedBook/Torus.hs</filename>,
1330             and the examples in
1331             <filename>RedBook/Font.hs</filename> and
1332             <filename>RedBook/Histogram.hs</filename> have been
1333             improved.
1334           </para>
1335         </listitem>
1336       </itemizedlist>
1337     </sect3>
1338
1339     <sect3>
1340       <title>haskell-src</title>
1341       <itemizedlist>
1342         <listitem>
1343           <para>
1344             No change (version 1.0).
1345           </para>
1346         </listitem>
1347       </itemizedlist>
1348     </sect3>
1349
1350     <sect3>
1351       <title>HGL</title>
1352       <itemizedlist>
1353         <listitem>
1354           <para>
1355             No change (version 3.1).
1356           </para>
1357         </listitem>
1358       </itemizedlist>
1359     </sect3>
1360
1361     <sect3>
1362       <title>html</title>
1363       <itemizedlist>
1364         <listitem>
1365           <para>
1366             Version 1.0.
1367           </para>
1368         </listitem>
1369         <listitem>
1370           <para>
1371             <literal>html</literal> is a new package, developing on
1372             what used to be <literal>Text.Html</literal> and
1373             <literal>Text.Html.BlockTable</literal> in the
1374             <literal>base</literal> package.
1375           </para>
1376         </listitem>
1377         <listitem>
1378           <para>
1379             <literal>Text.Html.BlockTable</literal> exports a new
1380             function <literal>empty</literal>.
1381           </para>
1382         </listitem>
1383       </itemizedlist>
1384     </sect3>
1385
1386     <sect3>
1387       <title>HUnit</title>
1388       <itemizedlist>
1389         <listitem>
1390           <para>
1391             No change (version 1.1).
1392           </para>
1393         </listitem>
1394       </itemizedlist>
1395     </sect3>
1396
1397     <sect3>
1398       <title>mtl</title>
1399       <itemizedlist>
1400         <listitem>
1401           <para>
1402             No change (version 1.0).
1403           </para>
1404         </listitem>
1405       </itemizedlist>
1406     </sect3>
1407
1408     <sect3>
1409       <title>network</title>
1410       <itemizedlist>
1411         <listitem>
1412           <para>
1413             Version number 2.0 (was 1.0).
1414           </para>
1415         </listitem>
1416         <listitem>
1417           <para>
1418             <literal>Network.CGI</literal> has been removed; use the
1419             <literal>cgi</literal> package instead.
1420           </para>
1421         </listitem>
1422         <listitem>
1423           <para>
1424             <literal>Network.BSD</literal> no longer exports
1425             <literal>symlink</literal> or <literal>readlink</literal>;
1426             use
1427             <literal>System.Posix.Files.createSymbolicLink</literal> and
1428             <literal>System.Posix.Files.readSymbolicLink</literal>
1429             instead.
1430           </para>
1431         </listitem>
1432         <listitem>
1433           <para>
1434             <literal>Network.BSD</literal> now exports
1435             <literal>defaultProtocol</literal>.
1436           </para>
1437         </listitem>
1438         <listitem>
1439           <para>
1440             <literal>Network.Socket.SocketStatus</literal> now has a
1441             constructor <literal>ConvertedToHandle</literal> for sockets
1442             that have been converted to handles.
1443           </para>
1444         </listitem>
1445         <listitem>
1446           <para>
1447             <literal>Network.Socket.Family</literal> now has the
1448             following additional constructors:
1449             <literal>AF_NETROM</literal>,
1450             <literal>AF_BRIDGE</literal>,
1451             <literal>AF_ATMPVC</literal>,
1452             <literal>AF_ROSE</literal>,
1453             <literal>AF_NETBEUI</literal>,
1454             <literal>AF_SECURITY</literal>,
1455             <literal>AF_PACKET</literal>,
1456             <literal>AF_ASH</literal>,
1457             <literal>AF_ECONET</literal>,
1458             <literal>AF_ATMSVC</literal>,
1459             <literal>AF_IRDA</literal>,
1460             <literal>AF_PPPOX</literal>,
1461             <literal>AF_WANPIPE</literal> and
1462             <literal>AF_BLUETOOTH</literal>.
1463           </para>
1464         </listitem>
1465         <listitem>
1466           <para>
1467             In <literal>Network.URI</literal>,
1468             <literal>parseabsoluteURI</literal> has been deprecated with
1469             a new function <literal>parseAbsoluteURI</literal> taking
1470             its place.
1471           </para>
1472         </listitem>
1473       </itemizedlist>
1474     </sect3>
1475
1476     <sect3>
1477       <title>ObjectIO</title>
1478       <itemizedlist>
1479         <listitem>
1480           <para>
1481             No change (version 1.0).
1482           </para>
1483         </listitem>
1484       </itemizedlist>
1485     </sect3>
1486
1487     <sect3>
1488       <title>OpenAL</title>
1489       <itemizedlist>
1490         <listitem>
1491           <para>
1492             Version number 1.3 (was 1.2).
1493           </para>
1494         </listitem>
1495         <listitem>
1496           <para>
1497             No other change.
1498           </para>
1499         </listitem>
1500       </itemizedlist>
1501     </sect3>
1502
1503     <sect3>
1504       <title>OpenGL</title>
1505       <itemizedlist>
1506         <listitem>
1507           <para>
1508             Version number 2.1 (was 2.0).
1509           </para>
1510         </listitem>
1511         <listitem>
1512           <para>
1513             No other change.
1514           </para>
1515         </listitem>
1516       </itemizedlist>
1517     </sect3>
1518
1519     <sect3>
1520       <title>QuickCheck</title>
1521       <itemizedlist>
1522         <listitem>
1523           <para>
1524             No change (version 1.0).
1525           </para>
1526         </listitem>
1527       </itemizedlist>
1528     </sect3>
1529
1530     <sect3>
1531       <title>time</title>
1532       <itemizedlist>
1533         <listitem>
1534           <para>
1535             Version 1.0.
1536           </para>
1537         </listitem>
1538         <listitem>
1539           <para>
1540             <literal>time</literal> is a new package, for dealing with
1541             dates, times and time intervals.
1542           </para>
1543         </listitem>
1544       </itemizedlist>
1545     </sect3>
1546
1547     <sect3>
1548       <title>X11</title>
1549       <itemizedlist>
1550         <listitem>
1551           <para>
1552             Version number 1.2 (was 1.1).
1553           </para>
1554         </listitem>
1555         <listitem>
1556           <para>
1557             In <literal>Graphics.X11.Xlib.Types</literal>,
1558             <literal>XGCValues</literal> has been renamed
1559             <literal>GCValues</literal> and
1560             <literal>XSetWindowAttributes</literal> has been renamed
1561             <literal>SetWindowAttributes</literal>.
1562           </para>
1563         </listitem>
1564         <listitem>
1565           <para>
1566             In <literal>Graphics.X11.Xlib.Misc</literal>,
1567             <literal>allocaXSetWindowAttributes</literal> has been
1568             renamed <literal>allocaSetWindowAttributes</literal>.
1569           </para>
1570         </listitem>
1571         <listitem>
1572           <para>
1573             The <literal>FontStruct</literal> type has moved from
1574             <literal>Graphics.X11.Xlib.Types</literal> to
1575             <literal>Graphics.X11.Xlib.Font</literal>.
1576           </para>
1577         </listitem>
1578         <listitem>
1579           <para>
1580             The
1581             <literal>Point</literal>,
1582             <literal>Rectangle</literal>,
1583             <literal>Arc</literal>,
1584             <literal>Segment</literal> and
1585             <literal>Color</literal> types in
1586             <literal>Graphics.X11.Xlib.Types</literal>
1587             are now proper datatypes rather than synonyms for tuples.
1588             They all have a <literal>Storable</literal> instance.
1589           </para>
1590         </listitem>
1591         <listitem>
1592           <para>
1593             The <literal>Byte</literal> and <literal>Short</literal>
1594             types from <literal>Graphics.X11.Xlib.Types</literal> have
1595             been removed.
1596             The following type synonyms, which had already been marked
1597             &quot;Backwards compatibility&quot;, have also been removed:
1598             <literal>ListPoint</literal>,
1599             <literal>ListRectangle</literal>,
1600             <literal>ListArc</literal>,
1601             <literal>ListSegment</literal> and
1602             <literal>ListColor</literal>.
1603           </para>
1604         </listitem>
1605         <listitem>
1606           <para>
1607             <literal>Eq</literal>,
1608             <literal>Ord</literal>,
1609             <literal>Show</literal>,
1610             <literal>Typeable</literal> and
1611             <literal>Data</literal> are now derived for:
1612             <literal>XEvent</literal>,
1613             <literal>FdSet</literal> and
1614             <literal>TimeZone</literal> in
1615             <literal>Graphics.X11.Xlib.Event</literal>,
1616             <literal>FontStruct</literal> in
1617             <literal>Graphics.X11.Xlib.Font</literal>,
1618             <literal>XErrorEvent</literal>,
1619             <literal>XComposeStatus</literal> and
1620             <literal>XTextProperty</literal> in
1621             <literal>Graphics.X11.Xlib.Misc</literal>,
1622             <literal>Region</literal> in
1623             <literal>Graphics.X11.Xlib.Region</literal>,
1624             <literal>Display</literal>,
1625             <literal>Screen</literal>,
1626             <literal>Visual</literal>,
1627             <literal>GC</literal>,
1628             <literal>GCValues</literal>,
1629             <literal>SetWindowAttributes</literal>,
1630             <literal>Point</literal>,
1631             <literal>Rectangle</literal>,
1632             <literal>Arc</literal>,
1633             <literal>Segment</literal> and
1634             <literal>Color</literal> in
1635             <literal>Graphics.X11.Xlib.Types</literal>.
1636           </para>
1637         </listitem>
1638       </itemizedlist>
1639     </sect3>
1640
1641     <sect3>
1642       <title>xhtml</title>
1643       <itemizedlist>
1644         <listitem>
1645           <para>
1646             Version 2006.8.14.
1647           </para>
1648         </listitem>
1649         <listitem>
1650           <para>
1651             <literal>xhtml</literal> is a new package, developing on
1652             what used to be <literal>Text.Html</literal> and
1653             <literal>Text.Html.BlockTable</literal> in the
1654             <literal>base</literal> package.
1655           </para>
1656         </listitem>
1657       </itemizedlist>
1658     </sect3>
1659   </sect2>
1660
1661   <sect2>
1662     <title>GHC As A Library</title>
1663       <para>
1664         Version number 6.6.
1665       </para>
1666       <para>
1667         The internal modules of GHC are now available as a library, package
1668         name <literal>ghc</literal>.
1669         The interface has not been designed with use by other programs
1670         in mind, so expect the API to vary radically in future
1671         releases.
1672       </para>
1673       <para>
1674         An introduction to using the library can be found
1675         <ulink url="http://haskell.org/haskellwiki/GHC/As_a_library">on the wiki</ulink>.
1676       </para>
1677   </sect2>
1678
1679   <sect2>
1680     <title>Internal changes</title>
1681     <itemizedlist>
1682       <listitem>
1683         <para>
1684           GHC development now has its own integrated
1685           <ulink url="http://hackage.haskell.org/trac/ghc">wiki and bug
1686           tracker</ulink>.
1687         </para>
1688       </listitem>
1689       <listitem>
1690         <para>
1691           GHC has now moved to darcs. See
1692           <ulink
1693           url="http://hackage.haskell.org/trac/ghc/wiki/GhcDarcs">the
1694           wiki</ulink> for more details. The sources have moved around a
1695           bit within the tree as a result, most notably the GHC sources
1696           are no longer kept within a <filename>ghc/</filename>
1697           subdirectory.
1698         </para>
1699       </listitem>
1700       <listitem>
1701         <para>
1702           The native code generator is now capable of compiling loops,
1703           which gets us a big step closer to being able to compile
1704           entirely without gcc on well-supported arches.
1705         </para>
1706       </listitem>
1707     </itemizedlist>
1708   </sect2>
1709 </sect1>
1710