and <literal>System.Win32.Console</literal>.
</para>
</listitem>
- <listitem>
- <para>
- <literal>System.Win32</literal> no longer exports
- <literal>LCID</literal>,
- <literal>LANGID</literal>,
- <literal>SortID</literal>,
- <literal>SubLANGID</literal>,
- <literal>PrimaryLANGID</literal>,
- <literal>mAKELCID</literal>,
- <literal>lANGIDFROMLCID</literal>,
- <literal>sORTIDFROMLCID</literal>,
- <literal>mAKELANGID</literal>,
- <literal>pRIMARYLANGID</literal> or
- <literal>sUBLANGID</literal> from
- <literal>System.Win32.NLS</literal>.
- </para>
- </listitem>
</itemizedlist>
</sect3>
</sect2>
</sect3>
<sect3>
- <title>HaXml</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.16 (was 1.12.1).
- </para>
- </listitem>
- <listitem>
- <para>
- There are now lazy versions of the parsing modules
- <literal>Text.XML.HaXml.ParseLazy</literal>
- (a lazy non-validating XML parser) and
- <literal>Text.XML.HaXml.Html.ParseLazy</literal>
- (a lazy HTML parser).
- </para>
- </listitem>
- <listitem>
- <para>
- There are lazy versions of two of the example tools,
- <literal>CanonicaliseLazy</literal> and
- <literal>XtractLazy</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>Text.XML.HaXml.Haskell2Xml</literal> and
- <literal>Text.XML.HaXml.Xml2Haskell</literal> have been
- removed, with <literal>Text.XML.HaXml.XmlContent</literal>
- replacing them.
- You must now use <literal>{-! derive : XmlContent !-}</literal>
- rather than <literal>{-! derive :Haskell2Xml !-}</literal>
- to have instances derived for your classes.
- </para>
- </listitem>
- <listitem>
- <para>
- Now also provides the
- <literal>Text.ParserCombinators.HuttonMeijer</literal>
- monadic parser combinator library.
- </para>
- </listitem>
- <listitem>
- <para>
- Provides another new set of parser combinators, as well as a lazy
- variant, a variant that carries around state, and a
- variant that does both. The modules are
- <literal>Text.ParserCombinators.Poly</literal>,
- <literal>Text.ParserCombinators.PolyLazy</literal>,
- <literal>Text.ParserCombinators.PolyState</literal> and
- <literal>Text.ParserCombinators.PolyStateLazy</literal>
- respectively.
- It also provides
- <literal>Text.ParserCombinators.TextParser</literal>, which
- is the <literal>Poly</literal> parser combinators
- specialised for strings.
- </para>
- </listitem>
- <listitem>
- <para>
- Now provides a SAX-like parser in
- <literal>Text.XML.HaXml.SAX</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- Now provides a module
- <literal>Text.XML.HaXml.TypeMapping</literal>, which
- defines an explicit representation for Haskell types.
- This allows generation of a DTD from a Haskell value.
- </para>
- </listitem>
- <listitem>
- <para>
- The <literal>Posn</literal> type has been pulled out from
- <literal>Text.XML.HaXml.Lex</literal> into its own module
- <literal>Text.XML.HaXml.Posn</literal>. Some helper
- functions are also exported.
- </para>
- </listitem>
- <listitem>
- <para>
- The APIs to the pre-existing modules have also substantially
- changed.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
<title>HGL</title>
<itemizedlist>
<listitem>
</sect3>
<sect3>
- <title>Japi</title>
- <itemizedlist>
- <listitem>
- <para>
- No change.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>monads</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 2.0.1 (was 1.1).
- </para>
- </listitem>
- <listitem>
- <para>
- In <literal>Monad.Id</literal>, <literal>run</literal> has
- been renamed <literal>runId</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- The <literal>Monad.BackT</literal> module has been removed;
- use the new <literal>Monad.SearchT</literal> module instead.
- </para>
- </listitem>
- <listitem>
- <para>
- There is a new module <literal>Monad.ForEach</literal>
- containing a class <literal>ForEach</literal>, for
- applying a monadic function to each element in a container.
- It provides instances for <literal>[]</literal> and
- <literal>Maybe</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- The following combinators have been moved from
- <literal>Monad.Prelude</literal> to a new module
- <literal>Monad.Combinators</literal>:
- <literal>(@@)</literal>,
- <literal>(#)</literal>,
- <literal>(<#)</literal>,
- <literal>(<##)</literal>,
- <literal>concatMap</literal> and
- <literal>partitionM</literal>.
- <literal>Monad.Combinators</literal> also defines the
- following new combinators:
- <literal>ifM</literal>,
- <literal>whenM</literal>,
- <literal>andM</literal>,
- <literal>orM</literal>,
- <literal>allM</literal>,
- <literal>anyM</literal>,
- <literal>forEach2</literal>,
- <literal>forEach2_</literal>,
- <literal>forEach3</literal> and
- <literal>forEach3_</literal>, and re-exports
- <literal>Control.Monad</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- The modules
- <literal>Monad.Cont</literal>,
- <literal>Monad.Except</literal>,
- <literal>Monad.Reader</literal>,
- <literal>Monad.State</literal> and
- <literal>Monad.Writer</literal> have been removed, but their
- monad transformer counterparts remain. If you want the
- monads then just transform the identity monad instead.
- </para>
- </listitem>
- <listitem>
- <para>
- The <literal>Monad.ExceptT</literal> module now also exports
- runExceptWith and unsafeRunExcept. It also now defines an
- instance <literal>ContM (ExceptT x m)</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- In <literal>Monad.Prelude</literal>, the
- <literal>get</literal> method of the
- <literal>ReaderM</literal> module has been renamed
- <literal>getR</literal>. The <literal>local</literal> method
- has been removed with a new class
- <literal>ReadUpdM</literal>, with methods
- <literal>updateR</literal>
- and <literal>setR</literal>, taking its place.
- The <literal>letLocal</literal> function has also been removed.
- </para>
- </listitem>
- <listitem>
- <para>
- In <literal>Monad.Prelude</literal>,
- <literal>update</literal> has been made a method of
- <literal>StateM</literal>.
- The
- <literal>peek</literal> and <literal>poke</literal> methods
- have been renamed <literal>get</literal> and
- <literal>set</literal> respectively, and both have a default
- definition in terms of <literal>update</literal>.
- The <literal>poke_</literal> function has also been renamed
- <literal>set_</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- In <literal>Monad.Prelude</literal>,
- <literal>handle</literal> has been taken out of the
- <literal>ExceptM</literal> class and put into a new
- class <literal>HandlerM</literal> along with a new method
- <literal>checkExcept</literal>.
- There are also new functions <literal>withHandler</literal>
- and <literal>handle_</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- The <literal>TakeWriterM</literal> class has been renamed
- <literal>CollectorM</literal>, and rather than a single
- method <literal>takeFrom</literal> it has methods
- <literal>censor</literal> and <literal>collect</literal>
- with default definitions in terms of each other.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>Monad.Prelude</literal> defines a type
- <literal>Cont</literal> and functions
- <literal>returnCC</literal> and <literal>cJump</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>Monad.Prelude</literal> exports functions
- <literal>inReader</literal>,
- <literal>inWriter</literal>,
- <literal>inState</literal> and
- <literal>inExcept</literal>.
- These make it easy to turn a pure representation of an
- effectful computation into an actual computation.
- </para>
- </listitem>
- <listitem>
- <para>
- The <literal>zipWith3M</literal> and
- <literal>zipWith3M_</literal> functions have been removed
- from <literal>Monad.Prelude</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>Monad.Prelude</literal> now re-exports
- <literal>Monad.Combinators</literal> and
- <literal>Monad.ForEach</literal>, but no longer re-exports
- <literal>Monad</literal>.
- </para>
- </listitem>
- <listitem>
- <para>
- There is a new module <literal>Monad.Transformers</literal>
- which re-exports
- <literal>Monad.Id</literal>,
- <literal>Monad.ReaderT</literal>,
- <literal>Monad.WriterT</literal>,
- <literal>Monad.StateT</literal>,
- <literal>Monad.ExceptT</literal>,
- <literal>Monad.SearchT</literal> and
- <literal>Monad.ContT</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
<title>mtl</title>
<itemizedlist>
<listitem>