    {-# LANGUAGE CPP #-}

    -- | Word8 library to be used with Data.ByteString.
    -- All function assumes that 'Word8' is encoded in Latin-1 (ISO-8859-1).
    -- All utility functions are supposed to work as if
    -- those of 'Data.Char'. Exceptions are described in
    -- the function documentations.
    --
    -- Base library 4.7 (GHC 7.8) or earlier is based on Unicode 6.
    -- Base library 4.8 (GHC 7.10) or later is based on Unicode 7.
    -- 'isLower', 'isSymbol' and 'isPunctuation' behave differently.

    module Data.Word8 (
      -- * Re-exporting
        Word8
      -- * Character classification
      , isControl, isSpace, isLower, isUpper
      , isAlpha, isAlphaNum, isPrint, isDigit, isOctDigit, isHexDigit
      , isLetter, isMark, isNumber, isPunctuation, isSymbol, isSeparator
      -- * Subranges
      , isAscii, isLatin1, isAsciiUpper, isAsciiLower
      -- * Case conversion
      , toUpper, toLower, toTitle
      -- * ASCII charactors
      , _nul, _tab, _lf, _vt, _np, _cr
      , _space, _exclam, _quotedbl, _numbersign, _dollar, _percent, _ampersand, _quotesingle, _parenleft, _parenright, _asterisk, _plus, _comma, _hyphen, _period, _slash
      , _0, _1, _2, _3, _4, _5, _6, _7, _8, _9
      , _colon, _semicolon, _less, _equal, _greater, _question, _at
      , _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z
      , _bracketleft, _backslash, _bracketright, _circum, _underscore, _grave
      , _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z
      , _braceleft, _bar, _braceright, _tilde, _del
      -- * Some Latin-1 charactors
      , _nbsp
      , _ordfeminine, _softhyphen, _mu, _ordmasculine
      , _s2, _s3, _s1, _1'4, _1'2, _3'4
      , _Agrave, _Odieresis, _Oslash, _Thorn
      , _germandbls, _agrave, _odieresis, _oslash, _thorn, _ydieresis
      ) where

    import Data.Word (Word8)

    #ifndef MIN_VERSION_base
    #define MIN_VERSION_base(x,y,z) 1
    #endif

    ----------------------------------------------------------------

    isControl :: Word8 -> Bool
    isControl :: Word8 -> Bool
    isControl Word8
    w = Word8
    _nul Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    0x1f
               Bool -> Bool -> Bool
    || Word8
    _del Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    0x9f

    isSpace :: Word8 -> Bool
    isSpace :: Word8 -> Bool
    isSpace Word8
    w = Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _space
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _tab
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _lf
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _cr
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _np
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _vt
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _nbsp

    -- | This function returns 'True' for 170 and 186 in Unicode 6.
    --   But it returns 'False' in Unicode 7.
    isLower :: Word8 -> Bool
    isLower :: Word8 -> Bool
    isLower Word8
    w = Word8 -> Bool
    isLower' Word8
    w
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _mu
    #if !MIN_VERSION_base(4,8,0)
             || w == _ordfeminine
             || w == _ordmasculine
    #endif

    isLowerCommon :: Word8 -> Bool
    isLowerCommon :: Word8 -> Bool
    isLowerCommon Word8
    w = Word8 -> Bool
    isLower' Word8
    w
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _mu
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _ordfeminine
             Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _ordmasculine

    isLower' :: Word8 -> Bool
    isLower' :: Word8 -> Bool
    isLower' Word8
    w = Word8 -> Bool
    isAsciiLower Word8
    w
              Bool -> Bool -> Bool
    || Word8
    _germandbls Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _odieresis
              Bool -> Bool -> Bool
    || Word8
    _oslash     Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _ydieresis

    isUpper :: Word8 -> Bool
    isUpper :: Word8 -> Bool
    isUpper Word8
    w = Word8 -> Bool
    isAsciiUpper Word8
    w
             Bool -> Bool -> Bool
    || Word8
    _Agrave Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _Odieresis
             Bool -> Bool -> Bool
    || Word8
    _Oslash Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _Thorn

    isAlpha :: Word8 -> Bool
    isAlpha :: Word8 -> Bool
    isAlpha Word8
    w = Word8 -> Bool
    isLowerCommon Word8
    w Bool -> Bool -> Bool
    || Word8 -> Bool
    isUpper Word8
    w

    isAlphaNum :: Word8 -> Bool
    isAlphaNum :: Word8 -> Bool
    isAlphaNum Word8
    w = Word8 -> Bool
    isAlpha Word8
    w Bool -> Bool -> Bool
    || Word8 -> Bool
    isNumber Word8
    w

    isPrint :: Word8 -> Bool
    isPrint :: Word8 -> Bool
    isPrint Word8
    w
      | Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _softhyphen = Bool
    False
    isPrint Word8
    w = Word8
    _space Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _tilde
             Bool -> Bool -> Bool
    || Word8
    _nbsp  Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _ydieresis

    isDigit :: Word8 -> Bool
    isDigit :: Word8 -> Bool
    isDigit Word8
    w = Word8
    _0 Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _9

    isOctDigit :: Word8 -> Bool
    isOctDigit :: Word8 -> Bool
    isOctDigit Word8
    w = Word8
    _0 Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _7

    isHexDigit :: Word8 -> Bool
    isHexDigit :: Word8 -> Bool
    isHexDigit Word8
    w = Word8 -> Bool
    isDigit Word8
    w
                Bool -> Bool -> Bool
    || Word8
    _A Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _F
                Bool -> Bool -> Bool
    || Word8
    _a Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _f

    isLetter :: Word8 -> Bool
    isLetter :: Word8 -> Bool
    isLetter Word8
    w = Word8 -> Bool
    isLowerCommon Word8
    w Bool -> Bool -> Bool
    || Word8 -> Bool
    isUpper Word8
    w

    isMark :: Word8 -> Bool
    isMark :: Word8 -> Bool
    isMark Word8
    _ = Bool
    False

    isNumber :: Word8 -> Bool
    isNumber :: Word8 -> Bool
    isNumber Word8
    w = Word8 -> Bool
    isDigit Word8
    w
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _s1
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _s2
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _s3
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _1'4
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _1'2
              Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _3'4

    -- | This function returns 'False' for 167 and 182 in Unicode 6.
    --   But it returns 'True' in Unicode 7.
    isPunctuation :: Word8 -> Bool
    #if MIN_VERSION_base(4,8,0)
    isPunctuation :: Word8 -> Bool
    isPunctuation Word8
    w = Word8
    w Word8 -> [Word8] -> Bool
    forall a. Eq a => a -> [a] -> Bool
    forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
    `elem` [Word8
    0x21,Word8
    0x22,Word8
    0x23,Word8
    0x25,Word8
    0x26,Word8
    0x27,Word8
    0x28,Word8
    0x29,Word8
    0x2a,Word8
    0x2c,Word8
    0x2d,Word8
    0x2e,Word8
    0x2f,Word8
    0x3a,Word8
    0x3b,Word8
    0x3f,Word8
    0x40,Word8
    0x5b,Word8
    0x5c,Word8
    0x5d,Word8
    0x5f,Word8
    0x7b,Word8
    0x7d,Word8
    0xa1,Word8
    0xa7,Word8
    0xab,Word8
    0xb6,Word8
    0xb7,Word8
    0xbb,Word8
    0xbf]
    #else
    isPunctuation w = w `elem` [0x21,0x22,0x23,0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x2e,0x2f,0x3a,0x3b,0x3f,0x40,0x5b,0x5c,0x5d,0x5f,0x7b,0x7d,0xa1,0xab,0xb7,0xbb,0xbf]
    #endif

    -- | This function returns 'True' for 167 and 182 in Unicode 6.
    --   But it returns 'False' in Unicode 7.
    isSymbol :: Word8 -> Bool
    #if MIN_VERSION_base(4,8,0)
    isSymbol :: Word8 -> Bool
    isSymbol Word8
    w = Word8
    w Word8 -> [Word8] -> Bool
    forall a. Eq a => a -> [a] -> Bool
    forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
    `elem` [Word8
    0x24,Word8
    0x2b,Word8
    0x3c,Word8
    0x3d,Word8
    0x3e,Word8
    0x5e,Word8
    0x60,Word8
    0x7c,Word8
    0x7e,Word8
    0xa2,Word8
    0xa3,Word8
    0xa4,Word8
    0xa5,Word8
    0xa6,Word8
    0xa8,Word8
    0xa9,Word8
    0xac,Word8
    0xae,Word8
    0xaf,Word8
    0xb0,Word8
    0xb1,Word8
    0xb4,Word8
    0xb8,Word8
    0xd7,Word8
    0xf7]
    #else
    isSymbol w = w `elem` [0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x7e,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xac,0xae,0xaf,0xb0,0xb1,0xb4,0xb6,0xb8,0xd7,0xf7]
    #endif

    isSeparator :: Word8 -> Bool
    isSeparator :: Word8 -> Bool
    isSeparator Word8
    w = Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _space
                 Bool -> Bool -> Bool
    || Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _nbsp

    ----------------------------------------------------------------

    isAscii :: Word8 -> Bool
    isAscii :: Word8 -> Bool
    isAscii Word8
    w = Word8
    _nul Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _del

    isLatin1 :: Word8 -> Bool
    isLatin1 :: Word8 -> Bool
    isLatin1 Word8
    _ = Bool
    True

    isAsciiUpper :: Word8 -> Bool
    isAsciiUpper :: Word8 -> Bool
    isAsciiUpper Word8
    w = Word8
    _A Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _Z

    isAsciiLower :: Word8 -> Bool
    isAsciiLower :: Word8 -> Bool
    isAsciiLower Word8
    w = Word8
    _a Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    w Bool -> Bool -> Bool
    && Word8
    w Word8 -> Word8 -> Bool
    forall a. Ord a => a -> a -> Bool
    <= Word8
    _z

    ----------------------------------------------------------------

    -- | Micro sign/mu (0xb5) and small letter Y with diaeresis (0xff) remain the same.
    toUpper :: Word8 -> Word8
    toUpper :: Word8 -> Word8
    toUpper Word8
    w
      | Word8
    w Word8 -> Word8 -> Bool
    forall a. Eq a => a -> a -> Bool
    == Word8
    _germandbls = Word8
    w
      | Word8 -> Bool
    isLower' Word8
    w       = Word8
    w Word8 -> Word8 -> Word8
    forall a. Num a => a -> a -> a
    - Word8
    _space
      | Bool
    otherwise        = Word8
    w

    toLower :: Word8 -> Word8
    toLower :: Word8 -> Word8
    toLower Word8
    w
      | Word8 -> Bool
    isUpper Word8
    w = Word8
    w Word8 -> Word8 -> Word8
    forall a. Num a => a -> a -> a
    + Word8
    _space
      | Bool
    otherwise = Word8
    w

    -- | Micro sign/mu (0xb5) and small letter Y with diaeresis (0xff) remain the same.
    toTitle :: Word8 -> Word8
    toTitle :: Word8 -> Word8
    toTitle = Word8 -> Word8
    toUpper

    ----------------------------------------------------------------

    _nul, _tab, _lf, _vt, _np, _cr :: Word8
    _nul :: Word8
    _nul = Word8
    0x00
    _tab :: Word8
    _tab = Word8
    0x09
    _lf :: Word8
    _lf  = Word8
    0x0a
    _vt :: Word8
    _vt  = Word8
    0x0b
    _np :: Word8
    _np  = Word8
    0x0c
    _cr :: Word8
    _cr  = Word8
    0x0d

    _space, _exclam, _quotedbl, _numbersign, _dollar, _percent, _ampersand, _quotesingle, _parenleft, _parenright, _asterisk, _plus, _comma, _hyphen, _period, _slash :: Word8
    _space :: Word8
    _space       = Word8
    0x20
    _exclam :: Word8
    _exclam      = Word8
    0x21
    _quotedbl :: Word8
    _quotedbl    = Word8
    0x22
    _numbersign :: Word8
    _numbersign  = Word8
    0x23
    _dollar :: Word8
    _dollar      = Word8
    0x24
    _percent :: Word8
    _percent     = Word8
    0x25
    _ampersand :: Word8
    _ampersand   = Word8
    0x26
    _quotesingle :: Word8
    _quotesingle = Word8
    0x27
    _parenleft :: Word8
    _parenleft   = Word8
    0x28
    _parenright :: Word8
    _parenright  = Word8
    0x29
    _asterisk :: Word8
    _asterisk    = Word8
    0x2a
    _plus :: Word8
    _plus        = Word8
    0x2b
    _comma :: Word8
    _comma       = Word8
    0x2c
    _hyphen :: Word8
    _hyphen      = Word8
    0x2d
    _period :: Word8
    _period      = Word8
    0x2e
    _slash :: Word8
    _slash       = Word8
    0x2f

    _0, _1, _2, _3, _4, _5, _6, _7, _8, _9 :: Word8
    _0 :: Word8
    _0 = Word8
    0x30
    _1 :: Word8
    _1 = Word8
    0x31
    _2 :: Word8
    _2 = Word8
    0x32
    _3 :: Word8
    _3 = Word8
    0x33
    _4 :: Word8
    _4 = Word8
    0x34
    _5 :: Word8
    _5 = Word8
    0x35
    _6 :: Word8
    _6 = Word8
    0x36
    _7 :: Word8
    _7 = Word8
    0x37
    _8 :: Word8
    _8 = Word8
    0x38
    _9 :: Word8
    _9 = Word8
    0x39

    _colon, _semicolon, _less, _equal, _greater, _question, _at :: Word8
    _colon :: Word8
    _colon      = Word8
    0x3a
    _semicolon :: Word8
    _semicolon  = Word8
    0x3b
    _less :: Word8
    _less       = Word8
    0x3c
    _equal :: Word8
    _equal      = Word8
    0x3d
    _greater :: Word8
    _greater    = Word8
    0x3e
    _question :: Word8
    _question   = Word8
    0x3f
    _at :: Word8
    _at         = Word8
    0x40

    _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z :: Word8
    _A :: Word8
    _A = Word8
    0x41
    _B :: Word8
    _B = Word8
    0x42
    _C :: Word8
    _C = Word8
    0x43
    _D :: Word8
    _D = Word8
    0x44
    _E :: Word8
    _E = Word8
    0x45
    _F :: Word8
    _F = Word8
    0x46
    _G :: Word8
    _G = Word8
    0x47
    _H :: Word8
    _H = Word8
    0x48
    _I :: Word8
    _I = Word8
    0x49
    _J :: Word8
    _J = Word8
    0x4a
    _K :: Word8
    _K = Word8
    0x4b
    _L :: Word8
    _L = Word8
    0x4c
    _M :: Word8
    _M = Word8
    0x4d
    _N :: Word8
    _N = Word8
    0x4e
    _O :: Word8
    _O = Word8
    0x4f
    _P :: Word8
    _P = Word8
    0x50
    _Q :: Word8
    _Q = Word8
    0x51
    _R :: Word8
    _R = Word8
    0x52
    _S :: Word8
    _S = Word8
    0x53
    _T :: Word8
    _T = Word8
    0x54
    _U :: Word8
    _U = Word8
    0x55
    _V :: Word8
    _V = Word8
    0x56
    _W :: Word8
    _W = Word8
    0x57
    _X :: Word8
    _X = Word8
    0x58
    _Y :: Word8
    _Y = Word8
    0x59
    _Z :: Word8
    _Z = Word8
    0x5a

    _bracketleft, _backslash, _bracketright, _circum, _underscore, _grave :: Word8
    _bracketleft :: Word8
    _bracketleft   = Word8
    0x5b
    _backslash :: Word8
    _backslash    = Word8
    0x5c
    _bracketright :: Word8
    _bracketright = Word8
    0x5d
    _circum :: Word8
    _circum       = Word8
    0x5e
    _underscore :: Word8
    _underscore   = Word8
    0x5f
    _grave :: Word8
    _grave        = Word8
    0x60

    _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z :: Word8
    _a :: Word8
    _a = Word8
    0x61
    _b :: Word8
    _b = Word8
    0x62
    _c :: Word8
    _c = Word8
    0x63
    _d :: Word8
    _d = Word8
    0x64
    _e :: Word8
    _e = Word8
    0x65
    _f :: Word8
    _f = Word8
    0x66
    _g :: Word8
    _g = Word8
    0x67
    _h :: Word8
    _h = Word8
    0x68
    _i :: Word8
    _i = Word8
    0x69
    _j :: Word8
    _j = Word8
    0x6a
    _k :: Word8
    _k = Word8
    0x6b
    _l :: Word8
    _l = Word8
    0x6c
    _m :: Word8
    _m = Word8
    0x6d
    _n :: Word8
    _n = Word8
    0x6e
    _o :: Word8
    _o = Word8
    0x6f
    _p :: Word8
    _p = Word8
    0x70
    _q :: Word8
    _q = Word8
    0x71
    _r :: Word8
    _r = Word8
    0x72
    _s :: Word8
    _s = Word8
    0x73
    _t :: Word8
    _t = Word8
    0x74
    _u :: Word8
    _u = Word8
    0x75
    _v :: Word8
    _v = Word8
    0x76
    _w :: Word8
    _w = Word8
    0x77
    _x :: Word8
    _x = Word8
    0x78
    _y :: Word8
    _y = Word8
    0x79
    _z :: Word8
    _z = Word8
    0x7a

    _braceleft, _bar, _braceright, _tilde, _del :: Word8
    _braceleft :: Word8
    _braceleft  = Word8
    0x7b
    _bar :: Word8
    _bar        = Word8
    0x7c
    _braceright :: Word8
    _braceright = Word8
    0x7d
    _tilde :: Word8
    _tilde      = Word8
    0x7e
    _del :: Word8
    _del        = Word8
    0x7f

    _nbsp :: Word8
    _nbsp :: Word8
    _nbsp = Word8
    0xa0

    _ordfeminine, _softhyphen, _mu, _ordmasculine :: Word8
    _ordfeminine :: Word8
    _ordfeminine  = Word8
    0xaa
    _softhyphen :: Word8
    _softhyphen   = Word8
    0xad
    _mu :: Word8
    _mu           = Word8
    0xb5
    _ordmasculine :: Word8
    _ordmasculine = Word8
    0xba

    _s2, _s3, _s1, _1'4, _1'2, _3'4  :: Word8
    _s2 :: Word8
    _s2 = Word8
    0xb2
    _s3 :: Word8
    _s3 = Word8
    0xb3
    _s1 :: Word8
    _s1 = Word8
    0xb9
    _1'4 :: Word8
    _1'4 = Word8
    0xbc
    _1'2 :: Word8
    _1'2 = Word8
    0xbd
    _3'4 :: Word8
    _3'4 = Word8
    0xbe

    _Agrave, _Odieresis, _Oslash, _Thorn :: Word8
    _Agrave :: Word8
    _Agrave    = Word8
    0xc0
    _Odieresis :: Word8
    _Odieresis = Word8
    0xd6
    _Oslash :: Word8
    _Oslash    = Word8
    0xd8
    _Thorn :: Word8
    _Thorn     = Word8
    0xde

    _germandbls, _agrave, _odieresis, _oslash, _thorn, _ydieresis :: Word8
    _germandbls :: Word8
    _germandbls = Word8
    0xdf
    _agrave :: Word8
    _agrave     = Word8
    0xe0
    _odieresis :: Word8
    _odieresis  = Word8
    0xf6
    _oslash :: Word8
    _oslash     = Word8
    0xf8
    _thorn :: Word8
    _thorn      = Word8
    0xfe
    _ydieresis :: Word8
    _ydieresis  = Word8
    0xff