Provided by: haxml_1.25.5-1build2_amd64 bug

NAME

       MkOneOf - a helper program to use with DtdToHaskell

SYNOPSIS

       MkOneOf n [m]

DESCRIPTION

       DtdToHaskell  translates  XML  DTD  into equivalent Haskell types.  When there is a choice
       between different tags, DtdToHaskell uses types like OneOf2,  OneOf3,  OneOf4,  etc.   The
       module  Text.XML.HaXml.OneOfN  currently  defines  these  types  up  OneOf20.  If your DTD
       requires larger choices, you can use this program to generate them.

       MkOneOf takes an integer N or an integer range N M and writes to  the  standard  output  a
       Haskell  module  with  respectively  the datatype OneOfN or the datatypes OneOfN up to and
       including OneOfM.

EXAMPLES

       If we run "MkOneOf 1 2", the program will print
       module Text.XML.HaXml.OneOfN where

       import Text.XML.HaXml.Xml2Haskell

       data OneOf1 a
           = OneOf1 a
           deriving (Eq,Show)

       instance (XmlContent a)
           => XmlContent (OneOf1 a)
         where
           fromElem cs =
               (choice OneOf1
               $ (    toElem (OneOf1 x) = toElem x

       ----
       data OneOf2 a b
           = OneOf2 a | TwoOf2 b
           deriving (Eq,Show)

       instance (XmlContent a,XmlContent b)
           => XmlContent (OneOf2 a b)
         where
           fromElem cs =
               (choice OneOf2 $ choice TwoOf2
               $ (    toElem (OneOf2 x) = toElem x
           toElem (TwoOf2 x) = toElem x

       ----

COPYRIGHT

       The HaXml library and tools were written by and are copyright to
              Copyright © 1998 – 2006    Malcolm Wallace and Colin Runciman

       The library incorporates the module Text.ParserCombinators.HuttonMeijerWallace
              Copyright © 1996           Graham Hutton and Erik Meijer

       with modifications
              Copyright © 1998 – 2000    Malcolm Wallace

       and may also use or incorporate the module Text.PrettyPrint.HughesPJ
              Copyright © 1996 – 1997    John Hughes and Simon Peyton Jones

       The HaXml library is licensed under the terms of the GNU  Lesser  General  Public  Licence
       (LGPL), with the following special exception:

              As a relaxation of clause 6 of the LGPL, the copyright holders of this library give
              permission to use, copy, link,  modify,  and  distribute,  binary-only  object-code
              versions  of an executable linked with the Library, without requiring the supply of
              any mechanism to modify or replace the Library and relink (clauses 6a, 6b, 6c,  6d,
              6e), provided that all the other terms of clause 6 are complied with.

       The  HaXml tools Xtract, Validate, DtdToHaskell, and MkOneOf, are licensed under the terms
       of the GNU General Public Licence (GPL).

       This library and toolset is distributed in the hope that it will be  useful,  but  WITHOUT
       ANY  WARRANTY;  without  even  the  implied  warranty  of MERCHANTABILITY or FITNESS FOR A
       PARTICULAR PURPOSE.  See the GNU Licences for more details.

SEE ALSO

       DtdToHaskell(1)

AUTHOR

       This contents of this manual page was copied from  the  HTML  documentation  and  slightly
       edited  by  Arjan  Oosting  <arjan@debian.org>  for  the Debian system (but may be used by
       others).