0e7b12b94911f704beac08ba5b00c396dd990cd4
[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           GHC now supports postfix operators, as a simple generalisation of
331           left sections (<xref linkend="postfix-operators"/>).
332         </para>
333       </listitem>
334       <listitem>
335         <para>
336           Parallel arrays, as enabled by <literal>-fparr</literal>, no
337           longer work.  They'll be coming back shortly, in full glory.
338         </para>
339       </listitem>
340     </itemizedlist>
341   </sect2>
342
343   <sect2>
344     <title>GHCi changes</title>
345
346     <itemizedlist>
347       <listitem>
348         <para>
349           GHCi now allows tab completion of in-scope names and modules
350           on platforms that use readline (i.e. not Windows).
351         </para>
352       </listitem>
353       <listitem>
354         <para>
355           GHCi now has a <literal>:main</literal> command that allows
356           you to call the <literal>main</literal> function with
357           command-line arguments.
358           See <xref linkend="ghci-commands" /> for more information.
359         </para>
360       </listitem>
361       <listitem>
362         <para>
363           GHCi now has <literal>:ctags</literal> and
364           <literal>:etags</literal> commands to generate tags files for
365           vi-style and emacs-style editors respectively.
366           See <xref linkend="ghci-commands" /> for more information.
367         </para>
368       </listitem>
369     </itemizedlist>
370   </sect2>
371
372   <sect2>
373     <title>Libraries</title>
374     <para>
375       Libraries are now divided into core libraries (those that are
376       necessary to build GHC) and extra libraries. Decoupling the extra
377       libraries means that they can release independently of GHC
378       releases, and makes development builds of GHC quicker as they no
379       longer need to build unnecessary libraries.
380     </para>
381
382     <para>
383       The hslibs libraries have finally been removed.
384     </para>
385   </sect2>
386
387   <sect2>
388     <title>Core Libraries</title>
389     <sect3>
390       <title>base</title>
391       <itemizedlist>
392         <listitem>
393           <para>
394             Version number 2.0 (was 1.0).
395           </para>
396         </listitem>
397         <listitem>
398           <para>
399             We now have <literal>Read</literal> and
400             <literal>Show</literal> instances for up to 15-tuples (used
401             to be up to 5-tuples).
402           </para>
403         </listitem>
404         <listitem>
405           <para>
406             New module <literal>Control.Applicative</literal> that
407             describes a structure intermediate between a functor and
408             a monad: it provides pure expressions and sequencing, but
409             no binding.
410           </para>
411         </listitem>
412         <listitem>
413           <para>
414             <literal>Control.Exception</literal> now exports
415             <literal>bracketOnError</literal>, which behaves like
416             <literal>bracket</literal> but only runs the final
417             action if the main action raised an error.
418           </para>
419         </listitem>
420         <listitem>
421           <para>
422             There is a new module
423             <literal>Control.Monad.Instances</literal> which
424             provides <literal>Monad</literal> and
425             <literal>Functor</literal> instances for
426             <literal>((->) r)</literal> (were in
427             <literal>mtl</literal>'s
428             <literal>Control.Monad.Reader</literal>), 
429             a <literal>Functor</literal> instance for
430             <literal>(Either a)</literal> (was in <literal>mtl</literal>'s
431             <literal>Control.Monad.Error</literal>) and a
432             <literal>Functor</literal> instance for
433             <literal>((,) a)</literal> (new).
434           </para>
435         </listitem>
436         <listitem>
437           <para>
438             The <literal>MonadFix</literal> instance for
439             <literal>((->) r)</literal> is now in
440             <literal>Control.Monad.Fix</literal> (was in
441             <literal>mtl</literal>'s
442             <literal>Control.Monad.Reader</literal>).
443           </para>
444         </listitem>
445         <listitem>
446           <para>
447             <literal>Control.Monad.ST</literal> now exports
448             <literal>unsafeSTToIO</literal>.
449           </para>
450         </listitem>
451         <listitem>
452           <para>
453             The <literal>HasBounds</literal> class has been removed from
454             <literal>Data.Array.Base</literal>, and its
455             <literal>bounds</literal> method is now in the
456             <literal>IArray</literal> class. The
457             <literal>MArray</literal> class
458             has also gained a method <literal>getBounds</literal>.
459           </para>
460         </listitem>
461         <listitem>
462           <para>
463             <literal>Data.Array.Base</literal> now provides an
464             <literal>MArray (STArray s) e (Lazy.ST s)</literal>
465             instance.
466           </para>
467         </listitem>
468         <listitem>
469           <para>
470             <literal>Data.Array.Storable</literal> now exports a
471             function <literal>unsafeForeignPtrToStorableArray</literal>.
472           </para>
473         </listitem>
474         <listitem>
475           <para>
476             The new <literal>Data.ByteString</literal> hierarchy
477             provides time and space-efficient byte vectors.
478             The old <literal>Data.PackedString</literal> module is now
479             deprecated as a result, although there is not yet a
480             replacement if you need full unicode support.
481           </para>
482         </listitem>
483         <listitem>
484           <para>
485             <literal>GHC.Exts</literal> now provides a function
486             <literal>inline</literal> which, provided the RHS is visible
487             to the compiler, forcibly inlines its argument.
488             Otherwise, it acts like <literal>id</literal>.
489           </para>
490         </listitem>
491         <listitem>
492           <para>
493             <literal>GHC.Exts</literal> now provides a function
494             <literal>lazy</literal> which forces GHC to think that its
495             argument is lazy in its first argument.
496           </para>
497         </listitem>
498         <listitem>
499           <para>
500             <literal>Data.FiniteMap</literal> has been removed
501             (deprecated since 6.4). Use <literal>Data.Map</literal>
502             instead.
503           </para>
504         </listitem>
505         <listitem>
506           <para>
507             <literal>Data.Char</literal> now exports
508             <literal>isLetter</literal>,
509             <literal>isMark</literal>,
510             <literal>isNumber</literal>,
511             <literal>isPunctuation</literal>,
512             <literal>isSymbol</literal>,
513             <literal>isSeparator</literal>,
514             <literal>isAsciiUpper</literal>,
515             <literal>isAsciiLower</literal> and
516             <literal>toTitle</literal>.
517             It also exports a function
518             <literal>generalCategory</literal> that tells you the
519             category of a character in terms of a datatype
520             <literal>GeneralCategory</literal>.
521           </para>
522         </listitem>
523         <listitem>
524           <para>
525             <literal>Data.Dynamic</literal> now exports a function
526             <literal>dynTypeRep</literal>.
527           </para>
528         </listitem>
529         <listitem>
530           <para>
531             There is a new module <literal>Data.Eq</literal> which
532             just exports the <literal>Eq</literal> class.
533             Likewise, a new module <literal>Data.Ord</literal>
534             exports the <literal>Ord</literal> class, as well as the
535             handy <literal>comparing</literal> function.
536           </para>
537         </listitem>
538         <listitem>
539           <para>
540             There is a new module <literal>Data.Fixed</literal>
541             providing fixed-precision arithmetic.
542           </para>
543         </listitem>
544         <listitem>
545           <para>
546             There is a new module <literal>Data.Foldable</literal>
547             providing a class for foldable datatypes. It gives instances
548             for <literal>Maybe</literal>, <literal>[]</literal> and
549             <literal>Array i</literal>.
550           </para>
551         </listitem>
552         <listitem>
553           <para>
554             There is a new module <literal>Data.Traversable</literal>
555             providing a class for data structures that can be traversed
556             from left to right. It gives instances
557             for <literal>Maybe</literal>, <literal>[]</literal> and
558             <literal>Array i</literal>.
559           </para>
560         </listitem>
561         <listitem>
562           <para>
563             <literal>Data.FunctorM</literal> has been deprecated;
564             use <literal>Data.Foldable</literal> and
565             <literal>Data.Traversable</literal> instead.
566           </para>
567         </listitem>
568         <listitem>
569           <para>
570             The <literal>toConstr</literal> definitions for tuples in
571             <literal>Data.Generics.Instances</literal> now actually
572             evaluate their arguments to tuples before returning
573             anything.
574           </para>
575         </listitem>
576         <listitem>
577           <para>
578             <literal>Data.IntMap</literal> now exports
579             <literal>notMember</literal>,
580             <literal>alter</literal>,
581             <literal>mapMaybe</literal>,
582             <literal>mapMaybeWithKey</literal>,
583             <literal>mapEither</literal> and
584             <literal>mapEitherWithKey</literal>.
585             It also has <literal>Monoid</literal>,
586             <literal>Foldable</literal> and <literal>Read</literal>
587             instances.
588           </para>
589         </listitem>
590         <listitem>
591           <para>
592             <literal>Data.IntSet</literal> now exports
593             <literal>notMember</literal>. It also has
594             <literal>Monoid</literal> and <literal>Read</literal>
595             instances.
596           </para>
597         </listitem>
598         <listitem>
599           <para>
600             <literal>Data.Map</literal> now exports
601             <literal>notMember</literal>,
602             <literal>alter</literal>,
603             <literal>mapMaybe</literal>,
604             <literal>mapMaybeWithKey</literal>,
605             <literal>mapEither</literal>,
606             <literal>mapEitherWithKey</literal>,
607             <literal>minView</literal> and
608             <literal>maxView</literal>.
609             It also has <literal>Monoid</literal>,
610             <literal>Traversable</literal>, <literal>Foldable</literal>
611             and <literal>Read</literal> instances.
612           </para>
613         </listitem>
614         <listitem>
615           <para>
616             <literal>Data.Set</literal> now exports
617             <literal>notMember</literal>,
618             <literal>minView</literal> and
619             <literal>maxView</literal>.
620             It also has <literal>Monoid</literal>,
621             <literal>Foldable</literal>
622             and <literal>Read</literal> instances.
623           </para>
624
625           <para>
626             The old, deprecated (since 6.4) interface consisting of
627             <literal>emptySet</literal>,
628             <literal>mkSet</literal>,
629             <literal>setToList</literal>,
630             <literal>unitSet</literal>,
631             <literal>elementOf</literal>,
632             <literal>isEmptySet</literal>,
633             <literal>cardinality</literal>,
634             <literal>unionManySets</literal>,
635             <literal>minusSet</literal>,
636             <literal>mapSet</literal>,
637             <literal>intersect</literal>,
638             <literal>addToSet</literal> and
639             <literal>delFromSet</literal> has been removed.
640           </para>
641         </listitem>
642         <listitem>
643           <para>
644             <literal>Data.Monoid</literal> no longer contains the
645             <literal>Monoid</literal>
646             instances for <literal>Map</literal>,
647             <literal>IntMap</literal>, <literal>Set</literal> and
648             <literal>IntSet</literal>. They have been moved to their own
649             modules, as above. The <literal>(a -> a)</literal> instance
650             has been replaced with a
651             <literal>Monoid b => Monoid (a -> b)</literal> instance.
652             The module also now exports
653             <literal>Dual</literal>,
654             <literal>Endo</literal>,
655             <literal>All</literal>,
656             <literal>Any</literal>,
657             <literal>Sum</literal> and
658             <literal>Product</literal> types, and
659             <literal>Monoid</literal> instances for them.
660           </para>
661         </listitem>
662         <listitem>
663           <para>
664             There is a new module <literal>Data.Sequence</literal>
665             for finite sequences. The <literal>Data.Queue</literal>
666             module is now deprecated in favour of this faster, more
667             featureful replacement.
668           </para>
669         </listitem>
670         <listitem>
671           <para>
672             <literal>Data.Tree</literal> now has
673             <literal>Data</literal>, <literal>Typeable</literal>,
674             <literal>Traversable</literal> and
675             <literal>Foldable</literal>
676             instances for the
677             <literal>Tree</literal> datatype.
678           </para>
679         </listitem>
680         <listitem>
681           <para>
682             <literal>Data.Typeable</literal> now uses
683             <option>-fallow-overlapping-instances</option>, so the
684             generic instances can be overriden for your own datatypes.
685           </para>
686         </listitem>
687         <listitem>
688           <para>
689             <literal>Debug.Trace</literal> now exports
690             <literal>traceShow</literal>, which is the same as
691             <literal>trace</literal> except its first argument can be
692             any showable thing rather than being required to be a
693             string.
694           </para>
695         </listitem>
696         <listitem>
697           <para>
698             <literal>Foreign.C.Types</literal> now also defines
699             <literal>CIntPtr</literal>,
700             <literal>CUIntPtr</literal>,
701             <literal>CIntMax</literal> and
702             <literal>CUIntMax</literal>.
703           </para>
704         </listitem>
705         <listitem>
706           <para>
707             <literal>Foreign.ForeignPtr</literal> now exports
708             <literal>FinalizerEnvPtr</literal>,
709             <literal>newForeignPtrEnv</literal> and
710             <literal>addForeignPtrFinalizerEnv</literal>.
711             Together, these allow the use of finalizers which are passed
712             an additional environment parameter.
713           </para>
714         </listitem>
715         <listitem>
716           <para>
717             <literal>Foreign.Marshal.Utils</literal> no longer exports
718             the <literal>withObject</literal> function, deprecated since
719             5.04; use <literal>with</literal> instead.
720           </para>
721         </listitem>
722         <listitem>
723           <para>
724             Foreign.Ptr now also defines
725             <literal>IntPtr</literal>,
726             <literal>ptrToIntPtr</literal>,
727             <literal>intPtrToPtr</literal>,
728             <literal>WordPtr</literal>,
729             <literal>ptrToWordPtr</literal> and
730             <literal>wordPtrToPtr</literal>.
731           </para>
732         </listitem>
733         <listitem>
734           <para>
735             There are now <literal>Bounded</literal> instances for up to
736             15-tuples (used to be up to 4-tuples).
737           </para>
738         </listitem>
739         <listitem>
740           <para>
741             The <literal>Text.Html</literal> and
742             <literal>Text.Html.BlockTable</literal> modules have now
743             been removed, with the new <literal>html</literal> and
744             <literal>xhtml</literal> packages providing replacements.
745           </para>
746         </listitem>
747         <listitem>
748           <para>
749             <literal>Text.Read</literal> now exports a function
750             <literal>parens</literal> which parses a value in an
751             arbitrary number of parentheses.
752           </para>
753         </listitem>
754         <listitem>
755           <para>
756             The <literal>ForeignPtr</literal> datatype has been altered
757             to make it more efficient. There are also new functions
758             <literal>mallocPlainForeignPtr</literal> and
759             <literal>mallocPlainForeignPtrBytes</literal> which
760             do not allow you to attach a finalizer to the
761             <literal>ForeignPtr</literal>.
762           </para>
763         </listitem>
764         <listitem>
765           <para>
766             The <literal>Text.Regex</literal> and
767             <literal>Text.Regex.Posix</literal> modules have been removed.
768             Instead, use the new <literal>regex-compat</literal> package
769             for a drop-in <literal>Text.Regex</literal> replacement, or
770             the new library in the new <literal>regex-posix</literal>
771             package.
772           </para>
773         </listitem>
774       </itemizedlist>
775     </sect3>
776
777     <sect3>
778       <title>Cabal</title>
779       <itemizedlist>
780         <listitem>
781           <para>
782             Version number 1.1.6 (was 1.1.4).
783           </para>
784         </listitem>
785         <listitem>
786           <para>
787             Support for JHC, symmetric to the support for the other
788             implementations, has been added throughout.
789           </para>
790         </listitem>
791         <listitem>
792           <para>
793             Support for object splitting and building in-place
794             has been added throughout.
795           </para>
796         </listitem>
797         <listitem>
798           <para>
799             Added a <filename>debianTemplate</filename> directory with
800             templates for building Debian packages from Cabal packages.
801           </para>
802         </listitem>
803         <listitem>
804           <para>
805             There are now modules
806             <literal>Distribution.Simple.<replaceable>compiler</replaceable></literal>
807             for each of <literal>GHC</literal>, <literal>NHC</literal>,
808             <literal>Hugs</literal> and <literal>JHC</literal>.
809             The <literal>Distribution.Simple.Build</literal> and
810             <literal>Distribution.Simple.Install</literal> modules have
811             shrunk correspondingly.
812           </para>
813         </listitem>
814         <listitem>
815           <para>
816             <literal>Distribution.GetOpt</literal> is no longer a
817             visible module.
818           </para>
819         </listitem>
820         <listitem>
821           <para>
822             <literal>Distribution.Simple</literal> exports a function
823             <literal>defaultMainArgs</literal>, which is identical to
824             <literal>defaultMain</literal> except that the arguments are
825             given as a list of strings rather than being retrieved with
826             <literal>getArgs</literal>.
827           </para>
828         </listitem>
829         <listitem>
830           <para>
831             <literal>Distribution.Simple.Configure</literal>
832             no longer exports
833             <literal>LocalBuildInfo</literal>,
834             but does now export
835             <literal>configDependency</literal> and
836             <literal>configCompilerAux</literal>.
837           </para>
838         </listitem>
839         <listitem>
840           <para>
841             <literal>Distribution.Simple.LocalBuildInfo</literal> now
842             exports <literal>mkHaddockDir</literal>,
843             <literal>distPref</literal>,
844             <literal>srcPref</literal>,
845             <literal>autogenModulesDir</literal> and
846             <literal>mkIncludeDir</literal>.
847           </para>
848         </listitem>
849         <listitem>
850           <para>
851             <literal>Distribution.PackageDescription</literal> now
852             exports <literal>haddockName</literal>.
853           </para>
854         </listitem>
855         <listitem>
856           <para>
857             <literal>Distribution.Simple.Utils</literal> now exports
858             <literal>copyDirectoryRecursiveVerbose</literal>,
859             <literal>dirOf</literal>,
860             <literal>distPref</literal>,
861             <literal>haddockPref</literal> and
862             <literal>srcPref</literal>.
863             It no longer exports <literal>mkGHCiLibName</literal>.
864           </para>
865         </listitem>
866       </itemizedlist>
867     </sect3>
868
869     <sect3>
870       <title>haskell98</title>
871       <itemizedlist>
872         <listitem>
873           <para>
874             No change (version 1.0).
875           </para>
876         </listitem>
877       </itemizedlist>
878     </sect3>
879
880     <sect3>
881       <title>parsec</title>
882       <itemizedlist>
883         <listitem>
884           <para>
885             Version number 2.0 (was 1.0).
886           </para>
887         </listitem>
888         <listitem>
889           <para>
890             No other change.
891           </para>
892         </listitem>
893       </itemizedlist>
894     </sect3>
895
896     <sect3>
897       <title>readline</title>
898       <itemizedlist>
899         <listitem>
900           <para>
901             No change (version 1.0).
902           </para>
903         </listitem>
904       </itemizedlist>
905     </sect3>
906
907     <sect3>
908       <title>regex-base</title>
909       <itemizedlist>
910         <listitem>
911           <para>
912             Version 0.71.
913           </para>
914         </listitem>
915         <listitem>
916           <para>
917             New library that provides common functions for different
918             regex backends.
919           </para>
920         </listitem>
921       </itemizedlist>
922     </sect3>
923
924     <sect3>
925       <title>regex-compat</title>
926       <itemizedlist>
927         <listitem>
928           <para>
929             Version 0.71.
930           </para>
931         </listitem>
932         <listitem>
933           <para>
934             New package providing a replacement
935             <literal>Text.Regex</literal> module.
936           </para>
937         </listitem>
938       </itemizedlist>
939     </sect3>
940
941     <sect3>
942       <title>regex-posix</title>
943       <itemizedlist>
944         <listitem>
945           <para>
946             Version 0.71.
947           </para>
948         </listitem>
949         <listitem>
950           <para>
951             A new package providing POSIX regexes.
952           </para>
953         </listitem>
954       </itemizedlist>
955     </sect3>
956
957     <sect3>
958       <title>stm</title>
959       <itemizedlist>
960         <listitem>
961           <para>
962             Version number 2.0 (was 1.0).
963           </para>
964         </listitem>
965         <listitem>
966           <para>
967             A new module <literal>Control.Monad.STM</literal>
968             contains the
969             <literal>MonadPlus</literal> instance for
970             <literal>STM</literal> and the function
971             <literal>check</literal> (both used to be in
972             <literal>Control.Concurrent.STM</literal>).
973             It also re-exports
974             <literal>STM</literal>,
975             <literal>atomically</literal>,
976             <literal>retry</literal>,
977             <literal>orElse</literal> and
978             <literal>catchSTM</literal>.
979           </para>
980         </listitem>
981         <listitem>
982           <para>
983             A new module
984             <literal>Control.Concurrent.STM.TArray</literal> defines
985             <literal>TArray</literal>, a transactional array, and makes
986             it an instance of <literal>MArray</literal>.
987           </para>
988         </listitem>
989         <listitem>
990           <para>
991             <literal>Control.Concurrent.STM.TChan</literal> now provides
992             a function <literal>newTChanIO</literal>, which allows
993             <literal>TChan</literal>s to be created in the IO monad.
994             Similarly, <literal>Control.Concurrent.STM.TMVar</literal>
995             provides <literal>newTMVarIO</literal> and
996             <literal>newEmptyTMVarIO</literal>, and
997             <literal>Control.Concurrent.STM.TVar</literal> exports
998             <literal>newTVarIO</literal>.
999           </para>
1000         </listitem>
1001         <listitem>
1002           <para>
1003             <literal>Control.Concurrent.STM.TVar</literal> exports
1004             <literal>registerDelay</literal>.
1005           </para>
1006         </listitem>
1007         <listitem>
1008           <para>
1009             The <literal>Control.Concurrent.STM</literal> module has been
1010             updated to re-export all the new modules.
1011           </para>
1012         </listitem>
1013       </itemizedlist>
1014     </sect3>
1015
1016     <sect3>
1017       <title>template-haskell</title>
1018       <itemizedlist>
1019         <listitem>
1020           <para>
1021             Version number 2.0 (was 1.0).
1022           </para>
1023         </listitem>
1024         <listitem>
1025           <para>
1026             A <literal>Show</literal> instance is now derived for
1027             <literal>Info</literal>, <literal>Fixity</literal> and
1028             <literal>FixityDirection</literal> in
1029             <literal>Language.Haskell.TH.Syntax</literal>.
1030           </para>
1031         </listitem>
1032         <listitem>
1033           <para>
1034             In <literal>Language.Haskell.TH.Syntax</literal>, there is
1035             a type <literal>PkgName</literal> and functions
1036             <literal>mkPkgName</literal> and
1037             <literal>pkgString</literal>
1038             for dealing with package names.
1039           </para>
1040         </listitem>
1041         <listitem>
1042           <para>
1043             The <literal>patGE</literal> function in
1044             <literal>Language.Haskell.TH.Lib</literal> now takes the
1045             final expression separately to the list of statements
1046             rather than splitting it off itself.
1047           </para>
1048         </listitem>
1049       </itemizedlist>
1050     </sect3>
1051
1052     <sect3>
1053       <title>unix</title>
1054       <itemizedlist>
1055         <listitem>
1056           <para>
1057             No change (version 1.0).
1058           </para>
1059         </listitem>
1060       </itemizedlist>
1061     </sect3>
1062
1063     <sect3>
1064       <title>Win32</title>
1065       <itemizedlist>
1066         <listitem>
1067           <para>
1068             Version number 2.0 (was 1.0).
1069           </para>
1070         </listitem>
1071         <listitem>
1072           <para>
1073             Now maintained by Esa Ilari Vuokko.
1074           </para>
1075         </listitem>
1076         <listitem>
1077           <para>
1078             There is a new module
1079             <literal>System.Win32.Console</literal>
1080             providing an interface to the Windows Console API.
1081           </para>
1082         </listitem>
1083         <listitem>
1084           <para>
1085             There is a new module
1086             <literal>System.Win32.DebugApi</literal>
1087             providing an interface to the Windows DebugApi.
1088           </para>
1089         </listitem>
1090         <listitem>
1091           <para>
1092             There is a new module
1093             <literal>System.Win32.FileMapping</literal>
1094             for working with memory-mapped files.
1095           </para>
1096         </listitem>
1097         <listitem>
1098           <para>
1099             There is a new module
1100             <literal>System.Win32.SimpleMAPI</literal>
1101             for using the Windows mail API.
1102           </para>
1103         </listitem>
1104         <listitem>
1105           <para>
1106             There is a new module
1107             <literal>System.Win32.Time</literal>
1108             for using the Windows time API.
1109           </para>
1110         </listitem>
1111         <listitem>
1112           <para>
1113             <literal>iNVALID_HANDLE_VALUE</literal> has moved from
1114             <literal>Graphics.Win32.Misc</literal> to
1115             <literal>System.Win32.Types</literal>.
1116           </para>
1117         </listitem>
1118         <listitem>
1119           <para>
1120             <literal>System.Win32.File</literal> has a new
1121             function <literal>getFileInformationByHandle</literal>
1122             and associated data types.
1123           </para>
1124         </listitem>
1125         <listitem>
1126           <para>
1127             <literal>System.Win32.Info</literal> has a new
1128             function <literal>getSystemInfo</literal> and associated
1129             data types.
1130           </para>
1131         </listitem>
1132         <listitem>
1133           <para>
1134             <literal>System.Win32.Process</literal> now has many more
1135             exports.
1136           </para>
1137         </listitem>
1138         <listitem>
1139           <para>
1140             <literal>System.Win32.Types</literal> has new types
1141             <literal>LARGE_INTEGER</literal>, <literal>DDWORD</literal>
1142             and <literal>SIZE_T</literal>. It also has new helper
1143             functions <literal>ddwordToDwords</literal> and
1144             <literal>dwordsToDdword</literal> to split and combine
1145             ddwords into high and low components.
1146           </para>
1147         </listitem>
1148         <listitem>
1149           <para>
1150             <literal>System.Win32</literal> re-exports
1151             <literal>System.Win32.FileMapping</literal>,
1152             <literal>System.Win32.Time</literal>
1153             and <literal>System.Win32.Console</literal>.
1154           </para>
1155         </listitem>
1156       </itemizedlist>
1157     </sect3>
1158   </sect2>
1159
1160   <sect2>
1161     <title>Extra Libraries</title>
1162     <sect3>
1163       <title>ALUT</title>
1164       <itemizedlist>
1165         <listitem>
1166           <para>
1167             Version number 2.0 (was 1.0).
1168           </para>
1169         </listitem>
1170         <listitem>
1171           <para>
1172             <literal>Sound.ALUT.BuiltInSounds</literal> has been removed.
1173             Its <literal>Phase</literal> and <literal>Duration</literal>
1174             exports are now exported by
1175             <literal>Sound.ALUT.Loaders</literal> and its
1176             <literal>helloWorld</literal>,
1177             <literal>sine</literal>,
1178             <literal>square</literal>,
1179             <literal>sawtooth</literal>,
1180             <literal>impulse</literal> and
1181             <literal>whiteNoise</literal>
1182             exports are now constructors of the
1183             <literal>Sound.ALUT.Loaders.SoundDataSource</literal>
1184             datatype.
1185           </para>
1186         </listitem>
1187       </itemizedlist>
1188     </sect3>
1189
1190     <sect3>
1191       <title>arrows</title>
1192       <itemizedlist>
1193         <listitem>
1194           <para>
1195             Version number 0.2 (was 0.1).
1196           </para>
1197         </listitem>
1198         <listitem>
1199           <para>
1200             <literal>Control.Sequence</literal> has been removed in
1201             favour of the new <literal>Control.Applicative</literal>
1202             module in <literal>base</literal>.
1203           </para>
1204         </listitem>
1205       </itemizedlist>
1206     </sect3>
1207
1208     <sect3>
1209       <title>cgi</title>
1210       <itemizedlist>
1211         <listitem>
1212           <para>
1213             Version 2006.8.14.
1214           </para>
1215         </listitem>
1216         <listitem>
1217           <para>
1218             <literal>cgi</literal> is a new package, developing on
1219             what used to be <literal>Network.CGI</literal> in the
1220             <literal>network</literal> package.
1221           </para>
1222         </listitem>
1223       </itemizedlist>
1224     </sect3>
1225
1226     <sect3>
1227       <title>fgl</title>
1228       <itemizedlist>
1229         <listitem>
1230           <para>
1231             Version number 5.3 (was 5.2).
1232           </para>
1233         </listitem>
1234         <listitem>
1235           <para>
1236             <literal>Data.Graph.Inductive.Graph</literal> no longer
1237             exports <literal>UContext</literal>.
1238           </para>
1239         </listitem>
1240         <listitem>
1241           <para>
1242             <literal>Data.Graph.Inductive.Graph</literal> now exports
1243             <literal>delLEdge</literal>.
1244           </para>
1245         </listitem>
1246       </itemizedlist>
1247     </sect3>
1248
1249     <sect3>
1250       <title>GLUT</title>
1251       <itemizedlist>
1252         <listitem>
1253           <para>
1254             Version number remains 2.0.
1255           </para>
1256         </listitem>
1257         <listitem>
1258           <para>
1259             In <literal>Graphics.UI.GLUT.Initialization</literal>,
1260             <literal>DisplayMode</literal> has a new constructor
1261             <literal>WithAuxBuffers</literal> and
1262             <literal>DisplayCapability</literal> has a new constructor
1263             <literal>DisplayAux</literal>. These represent freeglut-only
1264             features.
1265           </para>
1266         </listitem>
1267         <listitem>
1268           <para>
1269             There are new examples in
1270             <filename>BOGLGP/Chapter03/OnYourOwn1.hs</filename>,
1271             <filename>RedBook/AAIndex.hs</filename>,
1272             <filename>RedBook/AARGB.hs</filename>,
1273             <filename>RedBook/AccAnti.hs</filename>,
1274             <filename>RedBook/AccPersp.hs</filename>,
1275             <filename>RedBook/Alpha3D.hs</filename>,
1276             <filename>RedBook/DOF.hs</filename>,
1277             <filename>RedBook/FogIndex.hs</filename>,
1278             <filename>RedBook/Multisamp.hs</filename>,
1279             <filename>RedBook/PointP.hs</filename>,
1280             <filename>RedBook/PolyOff.hs</filename>,
1281             <filename>RedBook/Stencil.hs</filename>,
1282             <filename>RedBook/Stroke.hs</filename> and
1283             <filename>RedBook/Torus.hs</filename>,
1284             and the examples in
1285             <filename>RedBook/Font.hs</filename> and
1286             <filename>RedBook/Histogram.hs</filename> have been
1287             improved.
1288           </para>
1289         </listitem>
1290       </itemizedlist>
1291     </sect3>
1292
1293     <sect3>
1294       <title>haskell-src</title>
1295       <itemizedlist>
1296         <listitem>
1297           <para>
1298             No change (version 1.0).
1299           </para>
1300         </listitem>
1301       </itemizedlist>
1302     </sect3>
1303
1304     <sect3>
1305       <title>HGL</title>
1306       <itemizedlist>
1307         <listitem>
1308           <para>
1309             No change (version 3.1).
1310           </para>
1311         </listitem>
1312       </itemizedlist>
1313     </sect3>
1314
1315     <sect3>
1316       <title>html</title>
1317       <itemizedlist>
1318         <listitem>
1319           <para>
1320             Version 1.0.
1321           </para>
1322         </listitem>
1323         <listitem>
1324           <para>
1325             <literal>html</literal> is a new package, developing on
1326             what used to be <literal>Text.Html</literal> and
1327             <literal>Text.Html.BlockTable</literal> in the
1328             <literal>base</literal> package.
1329           </para>
1330         </listitem>
1331         <listitem>
1332           <para>
1333             <literal>Text.Html.BlockTable</literal> exports a new
1334             function <literal>empty</literal>.
1335           </para>
1336         </listitem>
1337       </itemizedlist>
1338     </sect3>
1339
1340     <sect3>
1341       <title>HUnit</title>
1342       <itemizedlist>
1343         <listitem>
1344           <para>
1345             No change (version 1.1).
1346           </para>
1347         </listitem>
1348       </itemizedlist>
1349     </sect3>
1350
1351     <sect3>
1352       <title>mtl</title>
1353       <itemizedlist>
1354         <listitem>
1355           <para>
1356             No change (version 1.0).
1357           </para>
1358         </listitem>
1359       </itemizedlist>
1360     </sect3>
1361
1362     <sect3>
1363       <title>network</title>
1364       <itemizedlist>
1365         <listitem>
1366           <para>
1367             Version number 2.0 (was 1.0).
1368           </para>
1369         </listitem>
1370         <listitem>
1371           <para>
1372             <literal>Network.CGI</literal> has been removed; use the
1373             <literal>cgi</literal> package instead.
1374           </para>
1375         </listitem>
1376         <listitem>
1377           <para>
1378             <literal>Network.BSD</literal> no longer exports
1379             <literal>symlink</literal> or <literal>readlink</literal>;
1380             use
1381             <literal>System.Posix.Files.createSymbolicLink</literal> and
1382             <literal>System.Posix.Files.readSymbolicLink</literal>
1383             instead.
1384           </para>
1385         </listitem>
1386         <listitem>
1387           <para>
1388             <literal>Network.BSD</literal> now exports
1389             <literal>defaultProtocol</literal>.
1390           </para>
1391         </listitem>
1392         <listitem>
1393           <para>
1394             <literal>Network.Socket.SocketStatus</literal> now has a
1395             constructor <literal>ConvertedToHandle</literal> for sockets
1396             that have been converted to handles.
1397           </para>
1398         </listitem>
1399         <listitem>
1400           <para>
1401             <literal>Network.Socket.Family</literal> now has the
1402             following additional constructors:
1403             <literal>AF_NETROM</literal>,
1404             <literal>AF_BRIDGE</literal>,
1405             <literal>AF_ATMPVC</literal>,
1406             <literal>AF_ROSE</literal>,
1407             <literal>AF_NETBEUI</literal>,
1408             <literal>AF_SECURITY</literal>,
1409             <literal>AF_PACKET</literal>,
1410             <literal>AF_ASH</literal>,
1411             <literal>AF_ECONET</literal>,
1412             <literal>AF_ATMSVC</literal>,
1413             <literal>AF_IRDA</literal>,
1414             <literal>AF_PPPOX</literal>,
1415             <literal>AF_WANPIPE</literal> and
1416             <literal>AF_BLUETOOTH</literal>.
1417           </para>
1418         </listitem>
1419         <listitem>
1420           <para>
1421             In <literal>Network.URI</literal>,
1422             <literal>parseabsoluteURI</literal> has been deprecated with
1423             a new function <literal>parseAbsoluteURI</literal> taking
1424             its place.
1425           </para>
1426         </listitem>
1427       </itemizedlist>
1428     </sect3>
1429
1430     <sect3>
1431       <title>ObjectIO</title>
1432       <itemizedlist>
1433         <listitem>
1434           <para>
1435             No change (version 1.0).
1436           </para>
1437         </listitem>
1438       </itemizedlist>
1439     </sect3>
1440
1441     <sect3>
1442       <title>OpenAL</title>
1443       <itemizedlist>
1444         <listitem>
1445           <para>
1446             Version number 1.3 (was 1.2).
1447           </para>
1448         </listitem>
1449         <listitem>
1450           <para>
1451             No other change.
1452           </para>
1453         </listitem>
1454       </itemizedlist>
1455     </sect3>
1456
1457     <sect3>
1458       <title>OpenGL</title>
1459       <itemizedlist>
1460         <listitem>
1461           <para>
1462             Version number 2.1 (was 2.0).
1463           </para>
1464         </listitem>
1465         <listitem>
1466           <para>
1467             No other change.
1468           </para>
1469         </listitem>
1470       </itemizedlist>
1471     </sect3>
1472
1473     <sect3>
1474       <title>QuickCheck</title>
1475       <itemizedlist>
1476         <listitem>
1477           <para>
1478             No change (version 1.0).
1479           </para>
1480         </listitem>
1481       </itemizedlist>
1482     </sect3>
1483
1484     <sect3>
1485       <title>time</title>
1486       <itemizedlist>
1487         <listitem>
1488           <para>
1489             Version 1.0.
1490           </para>
1491         </listitem>
1492         <listitem>
1493           <para>
1494             <literal>time</literal> is a new package, for dealing with
1495             dates, times and time intervals.
1496           </para>
1497         </listitem>
1498       </itemizedlist>
1499     </sect3>
1500
1501     <sect3>
1502       <title>X11</title>
1503       <itemizedlist>
1504         <listitem>
1505           <para>
1506             Version number 1.2 (was 1.1).
1507           </para>
1508         </listitem>
1509         <listitem>
1510           <para>
1511             In <literal>Graphics.X11.Xlib.Types</literal>,
1512             <literal>XGCValues</literal> has been renamed
1513             <literal>GCValues</literal> and
1514             <literal>XSetWindowAttributes</literal> has been renamed
1515             <literal>SetWindowAttributes</literal>.
1516           </para>
1517         </listitem>
1518         <listitem>
1519           <para>
1520             In <literal>Graphics.X11.Xlib.Misc</literal>,
1521             <literal>allocaXSetWindowAttributes</literal> has been
1522             renamed <literal>allocaSetWindowAttributes</literal>.
1523           </para>
1524         </listitem>
1525         <listitem>
1526           <para>
1527             The <literal>FontStruct</literal> type has moved from
1528             <literal>Graphics.X11.Xlib.Types</literal> to
1529             <literal>Graphics.X11.Xlib.Font</literal>.
1530           </para>
1531         </listitem>
1532         <listitem>
1533           <para>
1534             The
1535             <literal>Point</literal>,
1536             <literal>Rectangle</literal>,
1537             <literal>Arc</literal>,
1538             <literal>Segment</literal> and
1539             <literal>Color</literal> types in
1540             <literal>Graphics.X11.Xlib.Types</literal>
1541             are now proper datatypes rather than synonyms for tuples.
1542             They all have a <literal>Storable</literal> instance.
1543           </para>
1544         </listitem>
1545         <listitem>
1546           <para>
1547             The <literal>Byte</literal> and <literal>Short</literal>
1548             types from <literal>Graphics.X11.Xlib.Types</literal> have
1549             been removed.
1550             The following type synonyms, which had already been marked
1551             &quot;Backwards compatibility&quot;, have also been removed:
1552             <literal>ListPoint</literal>,
1553             <literal>ListRectangle</literal>,
1554             <literal>ListArc</literal>,
1555             <literal>ListSegment</literal> and
1556             <literal>ListColor</literal>.
1557           </para>
1558         </listitem>
1559         <listitem>
1560           <para>
1561             <literal>Eq</literal>,
1562             <literal>Ord</literal>,
1563             <literal>Show</literal>,
1564             <literal>Typeable</literal> and
1565             <literal>Data</literal> are now derived for:
1566             <literal>XEvent</literal>,
1567             <literal>FdSet</literal> and
1568             <literal>TimeZone</literal> in
1569             <literal>Graphics.X11.Xlib.Event</literal>,
1570             <literal>FontStruct</literal> in
1571             <literal>Graphics.X11.Xlib.Font</literal>,
1572             <literal>XErrorEvent</literal>,
1573             <literal>XComposeStatus</literal> and
1574             <literal>XTextProperty</literal> in
1575             <literal>Graphics.X11.Xlib.Misc</literal>,
1576             <literal>Region</literal> in
1577             <literal>Graphics.X11.Xlib.Region</literal>,
1578             <literal>Display</literal>,
1579             <literal>Screen</literal>,
1580             <literal>Visual</literal>,
1581             <literal>GC</literal>,
1582             <literal>GCValues</literal>,
1583             <literal>SetWindowAttributes</literal>,
1584             <literal>Point</literal>,
1585             <literal>Rectangle</literal>,
1586             <literal>Arc</literal>,
1587             <literal>Segment</literal> and
1588             <literal>Color</literal> in
1589             <literal>Graphics.X11.Xlib.Types</literal>.
1590           </para>
1591         </listitem>
1592       </itemizedlist>
1593     </sect3>
1594
1595     <sect3>
1596       <title>xhtml</title>
1597       <itemizedlist>
1598         <listitem>
1599           <para>
1600             Version 2006.8.14.
1601           </para>
1602         </listitem>
1603         <listitem>
1604           <para>
1605             <literal>xhtml</literal> is a new package, developing on
1606             what used to be <literal>Text.Html</literal> and
1607             <literal>Text.Html.BlockTable</literal> in the
1608             <literal>base</literal> package.
1609           </para>
1610         </listitem>
1611       </itemizedlist>
1612     </sect3>
1613   </sect2>
1614
1615   <sect2>
1616     <title>Internal changes</title>
1617     <itemizedlist>
1618       <listitem>
1619         <para>
1620           GHC development now has its own integrated
1621           <ulink url="http://hackage.haskell.org/trac/ghc">wiki and bug
1622           tracker</ulink>.
1623         </para>
1624       </listitem>
1625       <listitem>
1626         <para>
1627           GHC has now moved to darcs. See
1628           <ulink
1629           url="http://hackage.haskell.org/trac/ghc/wiki/GhcDarcs">the
1630           wiki</ulink> for more details. The sources have moved around a
1631           bit within the tree as a result, most notably the GHC sources
1632           are no longer kept within a <filename>ghc/</filename>
1633           subdirectory.
1634         </para>
1635       </listitem>
1636       <listitem>
1637         <para>
1638           The native code generator is now capable of compiling loops,
1639           which gets us a big step closer to being able to compile
1640           entirely without gcc on well-supported arches.
1641         </para>
1642       </listitem>
1643     </itemizedlist>
1644   </sect2>
1645 </sect1>
1646