    module Text.XML.HaXml.OneOfN where

    import Text.XML.HaXml.XmlContent

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

    instance (HTypeable a,HTypeable b)
        => HTypeable (OneOf2 a b)
      where      toHType _ = Defined "OneOf2" [] []
      --         toHType m = Defined "OneOf2" [a,b] []
      --            where a = toHType $ (\ (OneOf2 a)->a) $ m
      --                  b = toHType $ (\ (TwoOf2 b)->b) $ m

    instance (XmlContent a,XmlContent b)
        => XmlContent (OneOf2 a b)
      where
        parseContents =
            (choice OneOf2 $ choice TwoOf2
            $ fail "OneOf2")
        toContents (OneOf2 x) = toContents x
        toContents (TwoOf2 x) = toContents x

    ----
    data OneOf3 a b c
        = OneOf3 a | TwoOf3 b | ThreeOf3 c
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c)
        => HTypeable (OneOf3 a b c)
      where      toHType _ = Defined "OneOf3" [] []

    instance (XmlContent a,XmlContent b,XmlContent c)
        => XmlContent (OneOf3 a b c)
      where
        parseContents =
            (choice OneOf3 $ choice TwoOf3 $ choice ThreeOf3
            $ fail "OneOf3")
        toContents (OneOf3 x) = toContents x
        toContents (TwoOf3 x) = toContents x
        toContents (ThreeOf3 x) = toContents x

    ----
    data OneOf4 a b c d
        = OneOf4 a | TwoOf4 b | ThreeOf4 c | FourOf4 d
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d)
        => HTypeable (OneOf4 a b c d)
      where      toHType _ = Defined "OneOf4" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d)
        => XmlContent (OneOf4 a b c d)
      where
        parseContents =
            (choice OneOf4 $ choice TwoOf4 $ choice ThreeOf4 $ choice FourOf4
            $ fail "OneOf4")
        toContents (OneOf4 x) = toContents x
        toContents (TwoOf4 x) = toContents x
        toContents (ThreeOf4 x) = toContents x
        toContents (FourOf4 x) = toContents x

    ----
    data OneOf5 a b c d e
        = OneOf5 a | TwoOf5 b | ThreeOf5 c | FourOf5 d | FiveOf5 e
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e)
        => HTypeable (OneOf5 a b c d e)
      where      toHType _ = Defined "OneOf5" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e)
        => XmlContent (OneOf5 a b c d e)
      where
        parseContents =
            (choice OneOf5 $ choice TwoOf5 $ choice ThreeOf5 $ choice FourOf5
            $ choice FiveOf5
            $ fail "OneOf5")
        toContents (OneOf5 x) = toContents x
        toContents (TwoOf5 x) = toContents x
        toContents (ThreeOf5 x) = toContents x
        toContents (FourOf5 x) = toContents x
        toContents (FiveOf5 x) = toContents x

    ----
    data OneOf6 a b c d e f
        = OneOf6 a | TwoOf6 b | ThreeOf6 c | FourOf6 d | FiveOf6 e | SixOf6 f
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f)
        => HTypeable (OneOf6 a b c d e f)
      where      toHType _ = Defined "OneOf6" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f)
        => XmlContent (OneOf6 a b c d e f)
      where
        parseContents =
            (choice OneOf6 $ choice TwoOf6 $ choice ThreeOf6 $ choice FourOf6
            $ choice FiveOf6 $ choice SixOf6
            $ fail "OneOf6")
        toContents (OneOf6 x) = toContents x
        toContents (TwoOf6 x) = toContents x
        toContents (ThreeOf6 x) = toContents x
        toContents (FourOf6 x) = toContents x
        toContents (FiveOf6 x) = toContents x
        toContents (SixOf6 x) = toContents x

    ----
    data OneOf7 a b c d e f g
        = OneOf7 a | TwoOf7 b | ThreeOf7 c | FourOf7 d | FiveOf7 e | SixOf7 f
        | SevenOf7 g
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g)
        => HTypeable (OneOf7 a b c d e f g)
      where      toHType _ = Defined "OneOf7" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g)
        => XmlContent (OneOf7 a b c d e f g)
      where
        parseContents =
            (choice OneOf7 $ choice TwoOf7 $ choice ThreeOf7 $ choice FourOf7
            $ choice FiveOf7 $ choice SixOf7 $ choice SevenOf7
            $ fail "OneOf7")
        toContents (OneOf7 x) = toContents x
        toContents (TwoOf7 x) = toContents x
        toContents (ThreeOf7 x) = toContents x
        toContents (FourOf7 x) = toContents x
        toContents (FiveOf7 x) = toContents x
        toContents (SixOf7 x) = toContents x
        toContents (SevenOf7 x) = toContents x

    ----
    data OneOf8 a b c d e f g h
        = OneOf8 a | TwoOf8 b | ThreeOf8 c | FourOf8 d | FiveOf8 e | SixOf8 f
        | SevenOf8 g | EightOf8 h
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h)
        => HTypeable (OneOf8 a b c d e f g h)
      where      toHType _ = Defined "OneOf8" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h)
        => XmlContent (OneOf8 a b c d e f g h)
      where
        parseContents =
            (choice OneOf8 $ choice TwoOf8 $ choice ThreeOf8 $ choice FourOf8
            $ choice FiveOf8 $ choice SixOf8 $ choice SevenOf8 $ choice EightOf8
            $ fail "OneOf8")
        toContents (OneOf8 x) = toContents x
        toContents (TwoOf8 x) = toContents x
        toContents (ThreeOf8 x) = toContents x
        toContents (FourOf8 x) = toContents x
        toContents (FiveOf8 x) = toContents x
        toContents (SixOf8 x) = toContents x
        toContents (SevenOf8 x) = toContents x
        toContents (EightOf8 x) = toContents x

    ----
    data OneOf9 a b c d e f g h i
        = OneOf9 a | TwoOf9 b | ThreeOf9 c | FourOf9 d | FiveOf9 e | SixOf9 f
        | SevenOf9 g | EightOf9 h | NineOf9 i
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i)
        => HTypeable (OneOf9 a b c d e f g h i)
      where      toHType _ = Defined "OneOf9" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i)
        => XmlContent (OneOf9 a b c d e f g h i)
      where
        parseContents =
            (choice OneOf9 $ choice TwoOf9 $ choice ThreeOf9 $ choice FourOf9
            $ choice FiveOf9 $ choice SixOf9 $ choice SevenOf9 $ choice EightOf9
            $ choice NineOf9
            $ fail "OneOf9")
        toContents (OneOf9 x) = toContents x
        toContents (TwoOf9 x) = toContents x
        toContents (ThreeOf9 x) = toContents x
        toContents (FourOf9 x) = toContents x
        toContents (FiveOf9 x) = toContents x
        toContents (SixOf9 x) = toContents x
        toContents (SevenOf9 x) = toContents x
        toContents (EightOf9 x) = toContents x
        toContents (NineOf9 x) = toContents x

    ----
    data OneOf10 a b c d e f g h i j
        = OneOf10 a | TwoOf10 b | ThreeOf10 c | FourOf10 d | FiveOf10 e
        | SixOf10 f | SevenOf10 g | EightOf10 h | NineOf10 i | TenOf10 j
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j)
        => HTypeable (OneOf10 a b c d e f g h i j)
      where      toHType _ = Defined "OneOf10" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j)
        => XmlContent (OneOf10 a b c d e f g h i j)
      where
        parseContents =
            (choice OneOf10 $ choice TwoOf10 $ choice ThreeOf10 $ choice FourOf10
            $ choice FiveOf10 $ choice SixOf10 $ choice SevenOf10
            $ choice EightOf10 $ choice NineOf10 $ choice TenOf10
            $ fail "OneOf10")
        toContents (OneOf10 x) = toContents x
        toContents (TwoOf10 x) = toContents x
        toContents (ThreeOf10 x) = toContents x
        toContents (FourOf10 x) = toContents x
        toContents (FiveOf10 x) = toContents x
        toContents (SixOf10 x) = toContents x
        toContents (SevenOf10 x) = toContents x
        toContents (EightOf10 x) = toContents x
        toContents (NineOf10 x) = toContents x
        toContents (TenOf10 x) = toContents x

    ----
    data OneOf11 a b c d e f g h i j k
        = OneOf11 a | TwoOf11 b | ThreeOf11 c | FourOf11 d | FiveOf11 e
        | SixOf11 f | SevenOf11 g | EightOf11 h | NineOf11 i | TenOf11 j
        | ElevenOf11 k
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k)
        => HTypeable (OneOf11 a b c d e f g h i j k)
      where      toHType _ = Defined "OneOf11" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k)
        => XmlContent (OneOf11 a b c d e f g h i j k)
      where
        parseContents =
            (choice OneOf11 $ choice TwoOf11 $ choice ThreeOf11 $ choice FourOf11
            $ choice FiveOf11 $ choice SixOf11 $ choice SevenOf11
            $ choice EightOf11 $ choice NineOf11 $ choice TenOf11
            $ choice ElevenOf11
            $ fail "OneOf11")
        toContents (OneOf11 x) = toContents x
        toContents (TwoOf11 x) = toContents x
        toContents (ThreeOf11 x) = toContents x
        toContents (FourOf11 x) = toContents x
        toContents (FiveOf11 x) = toContents x
        toContents (SixOf11 x) = toContents x
        toContents (SevenOf11 x) = toContents x
        toContents (EightOf11 x) = toContents x
        toContents (NineOf11 x) = toContents x
        toContents (TenOf11 x) = toContents x
        toContents (ElevenOf11 x) = toContents x

    ----
    data OneOf12 a b c d e f g h i j k l
        = OneOf12 a | TwoOf12 b | ThreeOf12 c | FourOf12 d | FiveOf12 e
        | SixOf12 f | SevenOf12 g | EightOf12 h | NineOf12 i | TenOf12 j
        | ElevenOf12 k | TwelveOf12 l
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l)
        => HTypeable (OneOf12 a b c d e f g h i j k l)
      where      toHType _ = Defined "OneOf12" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l)
        => XmlContent (OneOf12 a b c d e f g h i j k l)
      where
        parseContents =
            (choice OneOf12 $ choice TwoOf12 $ choice ThreeOf12 $ choice FourOf12
            $ choice FiveOf12 $ choice SixOf12 $ choice SevenOf12
            $ choice EightOf12 $ choice NineOf12 $ choice TenOf12
            $ choice ElevenOf12 $ choice TwelveOf12
            $ fail "OneOf12")
        toContents (OneOf12 x) = toContents x
        toContents (TwoOf12 x) = toContents x
        toContents (ThreeOf12 x) = toContents x
        toContents (FourOf12 x) = toContents x
        toContents (FiveOf12 x) = toContents x
        toContents (SixOf12 x) = toContents x
        toContents (SevenOf12 x) = toContents x
        toContents (EightOf12 x) = toContents x
        toContents (NineOf12 x) = toContents x
        toContents (TenOf12 x) = toContents x
        toContents (ElevenOf12 x) = toContents x
        toContents (TwelveOf12 x) = toContents x

    ----
    data OneOf13 a b c d e f g h i j k l m
        = OneOf13 a | TwoOf13 b | ThreeOf13 c | FourOf13 d | FiveOf13 e
        | SixOf13 f | SevenOf13 g | EightOf13 h | NineOf13 i | TenOf13 j
        | ElevenOf13 k | TwelveOf13 l | ThirteenOf13 m
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m)
        => HTypeable (OneOf13 a b c d e f g h i j k l m)
      where      toHType _ = Defined "OneOf13" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m)
        => XmlContent (OneOf13 a b c d e f g h i j k l m)
      where
        parseContents =
            (choice OneOf13 $ choice TwoOf13 $ choice ThreeOf13 $ choice FourOf13
            $ choice FiveOf13 $ choice SixOf13 $ choice SevenOf13
            $ choice EightOf13 $ choice NineOf13 $ choice TenOf13
            $ choice ElevenOf13 $ choice TwelveOf13 $ choice ThirteenOf13
            $ fail "OneOf13")
        toContents (OneOf13 x) = toContents x
        toContents (TwoOf13 x) = toContents x
        toContents (ThreeOf13 x) = toContents x
        toContents (FourOf13 x) = toContents x
        toContents (FiveOf13 x) = toContents x
        toContents (SixOf13 x) = toContents x
        toContents (SevenOf13 x) = toContents x
        toContents (EightOf13 x) = toContents x
        toContents (NineOf13 x) = toContents x
        toContents (TenOf13 x) = toContents x
        toContents (ElevenOf13 x) = toContents x
        toContents (TwelveOf13 x) = toContents x
        toContents (ThirteenOf13 x) = toContents x

    ----
    data OneOf14 a b c d e f g h i j k l m n
        = OneOf14 a | TwoOf14 b | ThreeOf14 c | FourOf14 d | FiveOf14 e
        | SixOf14 f | SevenOf14 g | EightOf14 h | NineOf14 i | TenOf14 j
        | ElevenOf14 k | TwelveOf14 l | ThirteenOf14 m | FourteenOf14 n
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n)
        => HTypeable (OneOf14 a b c d e f g h i j k l m n)
      where      toHType _ = Defined "OneOf14" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n)
        => XmlContent (OneOf14 a b c d e f g h i j k l m n)
      where
        parseContents =
            (choice OneOf14 $ choice TwoOf14 $ choice ThreeOf14 $ choice FourOf14
            $ choice FiveOf14 $ choice SixOf14 $ choice SevenOf14
            $ choice EightOf14 $ choice NineOf14 $ choice TenOf14
            $ choice ElevenOf14 $ choice TwelveOf14 $ choice ThirteenOf14
            $ choice FourteenOf14
            $ fail "OneOf14")
        toContents (OneOf14 x) = toContents x
        toContents (TwoOf14 x) = toContents x
        toContents (ThreeOf14 x) = toContents x
        toContents (FourOf14 x) = toContents x
        toContents (FiveOf14 x) = toContents x
        toContents (SixOf14 x) = toContents x
        toContents (SevenOf14 x) = toContents x
        toContents (EightOf14 x) = toContents x
        toContents (NineOf14 x) = toContents x
        toContents (TenOf14 x) = toContents x
        toContents (ElevenOf14 x) = toContents x
        toContents (TwelveOf14 x) = toContents x
        toContents (ThirteenOf14 x) = toContents x
        toContents (FourteenOf14 x) = toContents x

    ----
    data OneOf15 a b c d e f g h i j k l m n o
        = OneOf15 a | TwoOf15 b | ThreeOf15 c | FourOf15 d | FiveOf15 e
        | SixOf15 f | SevenOf15 g | EightOf15 h | NineOf15 i | TenOf15 j
        | ElevenOf15 k | TwelveOf15 l | ThirteenOf15 m | FourteenOf15 n
        | FifteenOf15 o
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o)
        => HTypeable (OneOf15 a b c d e f g h i j k l m n o)
      where      toHType _ = Defined "OneOf15" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o)
        => XmlContent (OneOf15 a b c d e f g h i j k l m n o)
      where
        parseContents =
            (choice OneOf15 $ choice TwoOf15 $ choice ThreeOf15 $ choice FourOf15
            $ choice FiveOf15 $ choice SixOf15 $ choice SevenOf15
            $ choice EightOf15 $ choice NineOf15 $ choice TenOf15
            $ choice ElevenOf15 $ choice TwelveOf15 $ choice ThirteenOf15
            $ choice FourteenOf15 $ choice FifteenOf15
            $ fail "OneOf15")
        toContents (OneOf15 x) = toContents x
        toContents (TwoOf15 x) = toContents x
        toContents (ThreeOf15 x) = toContents x
        toContents (FourOf15 x) = toContents x
        toContents (FiveOf15 x) = toContents x
        toContents (SixOf15 x) = toContents x
        toContents (SevenOf15 x) = toContents x
        toContents (EightOf15 x) = toContents x
        toContents (NineOf15 x) = toContents x
        toContents (TenOf15 x) = toContents x
        toContents (ElevenOf15 x) = toContents x
        toContents (TwelveOf15 x) = toContents x
        toContents (ThirteenOf15 x) = toContents x
        toContents (FourteenOf15 x) = toContents x
        toContents (FifteenOf15 x) = toContents x

    ----
    data OneOf16 a b c d e f g h i j k l m n o p
        = OneOf16 a | TwoOf16 b | ThreeOf16 c | FourOf16 d | FiveOf16 e
        | SixOf16 f | SevenOf16 g | EightOf16 h | NineOf16 i | TenOf16 j
        | ElevenOf16 k | TwelveOf16 l | ThirteenOf16 m | FourteenOf16 n
        | FifteenOf16 o | SixteenOf16 p
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o
              ,HTypeable p)
        => HTypeable (OneOf16 a b c d e f g h i j k l m n o p)
      where      toHType _ = Defined "OneOf16" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o
              ,XmlContent p)
        => XmlContent (OneOf16 a b c d e f g h i j k l m n o p)
      where
        parseContents =
            (choice OneOf16 $ choice TwoOf16 $ choice ThreeOf16 $ choice FourOf16
            $ choice FiveOf16 $ choice SixOf16 $ choice SevenOf16
            $ choice EightOf16 $ choice NineOf16 $ choice TenOf16
            $ choice ElevenOf16 $ choice TwelveOf16 $ choice ThirteenOf16
            $ choice FourteenOf16 $ choice FifteenOf16 $ choice SixteenOf16
            $ fail "OneOf16")
        toContents (OneOf16 x) = toContents x
        toContents (TwoOf16 x) = toContents x
        toContents (ThreeOf16 x) = toContents x
        toContents (FourOf16 x) = toContents x
        toContents (FiveOf16 x) = toContents x
        toContents (SixOf16 x) = toContents x
        toContents (SevenOf16 x) = toContents x
        toContents (EightOf16 x) = toContents x
        toContents (NineOf16 x) = toContents x
        toContents (TenOf16 x) = toContents x
        toContents (ElevenOf16 x) = toContents x
        toContents (TwelveOf16 x) = toContents x
        toContents (ThirteenOf16 x) = toContents x
        toContents (FourteenOf16 x) = toContents x
        toContents (FifteenOf16 x) = toContents x
        toContents (SixteenOf16 x) = toContents x

    ----
    data OneOf17 a b c d e f g h i j k l m n o p q
        = OneOf17 a | TwoOf17 b | ThreeOf17 c | FourOf17 d | FiveOf17 e
        | SixOf17 f | SevenOf17 g | EightOf17 h | NineOf17 i | TenOf17 j
        | ElevenOf17 k | TwelveOf17 l | ThirteenOf17 m | FourteenOf17 n
        | FifteenOf17 o | SixteenOf17 p | SeventeenOf17 q
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o
              ,HTypeable p,HTypeable q)
        => HTypeable (OneOf17 a b c d e f g h i j k l m n o p q)
      where      toHType _ = Defined "OneOf17" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o
              ,XmlContent p,XmlContent q)
        => XmlContent (OneOf17 a b c d e f g h i j k l m n o p q)
      where
        parseContents =
            (choice OneOf17 $ choice TwoOf17 $ choice ThreeOf17 $ choice FourOf17
            $ choice FiveOf17 $ choice SixOf17 $ choice SevenOf17
            $ choice EightOf17 $ choice NineOf17 $ choice TenOf17
            $ choice ElevenOf17 $ choice TwelveOf17 $ choice ThirteenOf17
            $ choice FourteenOf17 $ choice FifteenOf17 $ choice SixteenOf17
            $ choice SeventeenOf17
            $ fail "OneOf17")
        toContents (OneOf17 x) = toContents x
        toContents (TwoOf17 x) = toContents x
        toContents (ThreeOf17 x) = toContents x
        toContents (FourOf17 x) = toContents x
        toContents (FiveOf17 x) = toContents x
        toContents (SixOf17 x) = toContents x
        toContents (SevenOf17 x) = toContents x
        toContents (EightOf17 x) = toContents x
        toContents (NineOf17 x) = toContents x
        toContents (TenOf17 x) = toContents x
        toContents (ElevenOf17 x) = toContents x
        toContents (TwelveOf17 x) = toContents x
        toContents (ThirteenOf17 x) = toContents x
        toContents (FourteenOf17 x) = toContents x
        toContents (FifteenOf17 x) = toContents x
        toContents (SixteenOf17 x) = toContents x
        toContents (SeventeenOf17 x) = toContents x

    ----
    data OneOf18 a b c d e f g h i j k l m n o p q r
        = OneOf18 a | TwoOf18 b | ThreeOf18 c | FourOf18 d | FiveOf18 e
        | SixOf18 f | SevenOf18 g | EightOf18 h | NineOf18 i | TenOf18 j
        | ElevenOf18 k | TwelveOf18 l | ThirteenOf18 m | FourteenOf18 n
        | FifteenOf18 o | SixteenOf18 p | SeventeenOf18 q | EighteenOf18 r
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o
              ,HTypeable p,HTypeable q,HTypeable r)
        => HTypeable (OneOf18 a b c d e f g h i j k l m n o p q r)
      where      toHType _ = Defined "OneOf18" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o
              ,XmlContent p,XmlContent q,XmlContent r)
        => XmlContent (OneOf18 a b c d e f g h i j k l m n o p q r)
      where
        parseContents =
            (choice OneOf18 $ choice TwoOf18 $ choice ThreeOf18 $ choice FourOf18
            $ choice FiveOf18 $ choice SixOf18 $ choice SevenOf18
            $ choice EightOf18 $ choice NineOf18 $ choice TenOf18
            $ choice ElevenOf18 $ choice TwelveOf18 $ choice ThirteenOf18
            $ choice FourteenOf18 $ choice FifteenOf18 $ choice SixteenOf18
            $ choice SeventeenOf18 $ choice EighteenOf18
            $ fail "OneOf18")
        toContents (OneOf18 x) = toContents x
        toContents (TwoOf18 x) = toContents x
        toContents (ThreeOf18 x) = toContents x
        toContents (FourOf18 x) = toContents x
        toContents (FiveOf18 x) = toContents x
        toContents (SixOf18 x) = toContents x
        toContents (SevenOf18 x) = toContents x
        toContents (EightOf18 x) = toContents x
        toContents (NineOf18 x) = toContents x
        toContents (TenOf18 x) = toContents x
        toContents (ElevenOf18 x) = toContents x
        toContents (TwelveOf18 x) = toContents x
        toContents (ThirteenOf18 x) = toContents x
        toContents (FourteenOf18 x) = toContents x
        toContents (FifteenOf18 x) = toContents x
        toContents (SixteenOf18 x) = toContents x
        toContents (SeventeenOf18 x) = toContents x
        toContents (EighteenOf18 x) = toContents x

    ----
    data OneOf19 a b c d e f g h i j k l m n o p q r s
        = OneOf19 a | TwoOf19 b | ThreeOf19 c | FourOf19 d | FiveOf19 e
        | SixOf19 f | SevenOf19 g | EightOf19 h | NineOf19 i | TenOf19 j
        | ElevenOf19 k | TwelveOf19 l | ThirteenOf19 m | FourteenOf19 n
        | FifteenOf19 o | SixteenOf19 p | SeventeenOf19 q | EighteenOf19 r
        | NineteenOf19 s
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o
              ,HTypeable p,HTypeable q,HTypeable r,HTypeable s)
        => HTypeable (OneOf19 a b c d e f g h i j k l m n o p q r s)
      where      toHType _ = Defined "OneOf19" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o
              ,XmlContent p,XmlContent q,XmlContent r,XmlContent s)
        => XmlContent (OneOf19 a b c d e f g h i j k l m n o p q r s)
      where
        parseContents =
            (choice OneOf19 $ choice TwoOf19 $ choice ThreeOf19 $ choice FourOf19
            $ choice FiveOf19 $ choice SixOf19 $ choice SevenOf19
            $ choice EightOf19 $ choice NineOf19 $ choice TenOf19
            $ choice ElevenOf19 $ choice TwelveOf19 $ choice ThirteenOf19
            $ choice FourteenOf19 $ choice FifteenOf19 $ choice SixteenOf19
            $ choice SeventeenOf19 $ choice EighteenOf19 $ choice NineteenOf19
            $ fail "OneOf19")
        toContents (OneOf19 x) = toContents x
        toContents (TwoOf19 x) = toContents x
        toContents (ThreeOf19 x) = toContents x
        toContents (FourOf19 x) = toContents x
        toContents (FiveOf19 x) = toContents x
        toContents (SixOf19 x) = toContents x
        toContents (SevenOf19 x) = toContents x
        toContents (EightOf19 x) = toContents x
        toContents (NineOf19 x) = toContents x
        toContents (TenOf19 x) = toContents x
        toContents (ElevenOf19 x) = toContents x
        toContents (TwelveOf19 x) = toContents x
        toContents (ThirteenOf19 x) = toContents x
        toContents (FourteenOf19 x) = toContents x
        toContents (FifteenOf19 x) = toContents x
        toContents (SixteenOf19 x) = toContents x
        toContents (SeventeenOf19 x) = toContents x
        toContents (EighteenOf19 x) = toContents x
        toContents (NineteenOf19 x) = toContents x

    ----
    data OneOf20 a b c d e f g h i j k l m n o p q r s t
        = OneOf20 a | TwoOf20 b | ThreeOf20 c | FourOf20 d | FiveOf20 e
        | SixOf20 f | SevenOf20 g | EightOf20 h | NineOf20 i | TenOf20 j
        | ElevenOf20 k | TwelveOf20 l | ThirteenOf20 m | FourteenOf20 n
        | FifteenOf20 o | SixteenOf20 p | SeventeenOf20 q | EighteenOf20 r
        | NineteenOf20 s | TwentyOf20 t
        deriving (Eq,Show)

    instance (HTypeable a,HTypeable b,HTypeable c,HTypeable d,HTypeable e
              ,HTypeable f,HTypeable g,HTypeable h,HTypeable i,HTypeable j
              ,HTypeable k,HTypeable l,HTypeable m,HTypeable n,HTypeable o
              ,HTypeable p,HTypeable q,HTypeable r,HTypeable s,HTypeable t)
        => HTypeable (OneOf20 a b c d e f g h i j k l m n o p q r s t)
      where      toHType _ = Defined "OneOf20" [] []

    instance (XmlContent a,XmlContent b,XmlContent c,XmlContent d,XmlContent e
              ,XmlContent f,XmlContent g,XmlContent h,XmlContent i,XmlContent j
              ,XmlContent k,XmlContent l,XmlContent m,XmlContent n,XmlContent o
              ,XmlContent p,XmlContent q,XmlContent r,XmlContent s,XmlContent t)
        => XmlContent (OneOf20 a b c d e f g h i j k l m n o p q r s t)
      where
        parseContents =
            (choice OneOf20 $ choice TwoOf20 $ choice ThreeOf20 $ choice FourOf20
            $ choice FiveOf20 $ choice SixOf20 $ choice SevenOf20
            $ choice EightOf20 $ choice NineOf20 $ choice TenOf20
            $ choice ElevenOf20 $ choice TwelveOf20 $ choice ThirteenOf20
            $ choice FourteenOf20 $ choice FifteenOf20 $ choice SixteenOf20
            $ choice SeventeenOf20 $ choice EighteenOf20 $ choice NineteenOf20
            $ choice TwentyOf20
            $ fail "OneOf20")
        toContents (OneOf20 x) = toContents x
        toContents (TwoOf20 x) = toContents x
        toContents (ThreeOf20 x) = toContents x
        toContents (FourOf20 x) = toContents x
        toContents (FiveOf20 x) = toContents x
        toContents (SixOf20 x) = toContents x
        toContents (SevenOf20 x) = toContents x
        toContents (EightOf20 x) = toContents x
        toContents (NineOf20 x) = toContents x
        toContents (TenOf20 x) = toContents x
        toContents (ElevenOf20 x) = toContents x
        toContents (TwelveOf20 x) = toContents x
        toContents (ThirteenOf20 x) = toContents x
        toContents (FourteenOf20 x) = toContents x
        toContents (FifteenOf20 x) = toContents x
        toContents (SixteenOf20 x) = toContents x
        toContents (SeventeenOf20 x) = toContents x
        toContents (EighteenOf20 x) = toContents x
        toContents (NineteenOf20 x) = toContents x
        toContents (TwentyOf20 x) = toContents x

    ----