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