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