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