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