Show
Ignore:
Timestamp:
08/01/08 13:56:05 (4 months ago)
Author:
audreyt
Message:

* Import Pugs 6.2.13.11 from Hackage into our source tree.
* Highlights:

  • Much faster startup time
  • Slightly faster compilation time (mostly due to refactored Pugs.AST.Internals)
  • Portable-to-Win32 readline thanks to Haskeline
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Parser/Charnames.hs

    r17047 r21673  
    1 {-# OPTIONS_GHC -fglasgow-exts -fno-full-laziness -fno-cse -cpp -fvia-C -fallow-overlapping-instances #-} 
     1{-# OPTIONS_GHC -fglasgow-exts -fno-full-laziness -fno-cse -cpp -fallow-overlapping-instances #-} 
    22 
    33module Pugs.Parser.Charnames (nameToCode) where 
     
    2323 
    2424import qualified Data.HashTable as H 
    25 import UTF8 (unsafePackAddress, hash) 
     25import Data.ByteString.Unsafe (unsafePackAddressLen) 
    2626 
    2727-- If we don't have Perl 5, support for names in the 0x00 - 0xFF range only. 
     
    3232{-# NOINLINE _NameToCode #-} 
    3333_NameToCode :: H.HashTable ByteString Int 
    34 _NameToCode = unsafePerformIO $! hashList 
    35     [ (unsafePackAddress 4 "NULL"#, 0x0000) 
    36     , (unsafePackAddress 16 "START OF HEADING"#, 0x0001) 
    37     , (unsafePackAddress 13 "START OF TEXT"#, 0x0002) 
    38     , (unsafePackAddress 11 "END OF TEXT"#, 0x0003) 
    39     , (unsafePackAddress 19 "END OF TRANSMISSION"#, 0x0004) 
    40     , (unsafePackAddress 7 "ENQUIRY"#, 0x0005) 
    41     , (unsafePackAddress 11 "ACKNOWLEDGE"#, 0x0006) 
    42     , (unsafePackAddress 4 "BELL"#, 0x0007) 
    43     , (unsafePackAddress 9 "BACKSPACE"#, 0x0008) 
    44     , (unsafePackAddress 20 "CHARACTER TABULATION"#, 0x0009) 
    45     , (unsafePackAddress 14 "LINE FEED (LF)"#, 0x000A) 
    46     , (unsafePackAddress 9 "LINE FEED"#, 0x000A) 
    47     , (unsafePackAddress 15 "LINE TABULATION"#, 0x000B) 
    48     , (unsafePackAddress 14 "FORM FEED (FF)"#, 0x000C) 
    49     , (unsafePackAddress 9 "FORM FEED"#, 0x000C) 
    50     , (unsafePackAddress 20 "CARRIAGE RETURN (CR)"#, 0x000D) 
    51     , (unsafePackAddress 15 "CARRIAGE RETURN"#, 0x000D) 
    52     , (unsafePackAddress 9 "SHIFT OUT"#, 0x000E) 
    53     , (unsafePackAddress 8 "SHIFT IN"#, 0x000F) 
    54     , (unsafePackAddress 16 "DATA LINK ESCAPE"#, 0x0010) 
    55     , (unsafePackAddress 18 "DEVICE CONTROL ONE"#, 0x0011) 
    56     , (unsafePackAddress 18 "DEVICE CONTROL TWO"#, 0x0012) 
    57     , (unsafePackAddress 20 "DEVICE CONTROL THREE"#, 0x0013) 
    58     , (unsafePackAddress 19 "DEVICE CONTROL FOUR"#, 0x0014) 
    59     , (unsafePackAddress 20 "NEGATIVE ACKNOWLEDGE"#, 0x0015) 
    60     , (unsafePackAddress 16 "SYNCHRONOUS IDLE"#, 0x0016) 
    61     , (unsafePackAddress 25 "END OF TRANSMISSION BLOCK"#, 0x0017) 
    62     , (unsafePackAddress 6 "CANCEL"#, 0x0018) 
    63     , (unsafePackAddress 13 "END OF MEDIUM"#, 0x0019) 
    64     , (unsafePackAddress 10 "SUBSTITUTE"#, 0x001A) 
    65     , (unsafePackAddress 6 "ESCAPE"#, 0x001B) 
    66     , (unsafePackAddress 26 "INFORMATION SEPARATOR FOUR"#, 0x001C) 
    67     , (unsafePackAddress 27 "INFORMATION SEPARATOR THREE"#, 0x001D) 
    68     , (unsafePackAddress 25 "INFORMATION SEPARATOR TWO"#, 0x001E) 
    69     , (unsafePackAddress 25 "INFORMATION SEPARATOR ONE"#, 0x001F) 
    70     , (unsafePackAddress 5 "SPACE"#, 0x0020) 
    71     , (unsafePackAddress 16 "EXCLAMATION MARK"#, 0x0021) 
    72     , (unsafePackAddress 14 "QUOTATION MARK"#, 0x0022) 
    73     , (unsafePackAddress 11 "NUMBER SIGN"#, 0x0023) 
    74     , (unsafePackAddress 11 "DOLLAR SIGN"#, 0x0024) 
    75     , (unsafePackAddress 12 "PERCENT SIGN"#, 0x0025) 
    76     , (unsafePackAddress 9 "AMPERSAND"#, 0x0026) 
    77     , (unsafePackAddress 10 "APOSTROPHE"#, 0x0027) 
    78     , (unsafePackAddress 16 "LEFT PARENTHESIS"#, 0x0028) 
    79     , (unsafePackAddress 17 "RIGHT PARENTHESIS"#, 0x0029) 
    80     , (unsafePackAddress 8 "ASTERISK"#, 0x002A) 
    81     , (unsafePackAddress 9 "PLUS SIGN"#, 0x002B) 
    82     , (unsafePackAddress 5 "COMMA"#, 0x002C) 
    83     , (unsafePackAddress 12 "HYPHEN-MINUS"#, 0x002D) 
    84     , (unsafePackAddress 9 "FULL STOP"#, 0x002E) 
    85     , (unsafePackAddress 7 "SOLIDUS"#, 0x002F) 
    86     , (unsafePackAddress 10 "DIGIT ZERO"#, 0x0030) 
    87     , (unsafePackAddress 9 "DIGIT ONE"#, 0x0031) 
    88     , (unsafePackAddress 9 "DIGIT TWO"#, 0x0032) 
    89     , (unsafePackAddress 11 "DIGIT THREE"#, 0x0033) 
    90     , (unsafePackAddress 10 "DIGIT FOUR"#, 0x0034) 
    91     , (unsafePackAddress 10 "DIGIT FIVE"#, 0x0035) 
    92     , (unsafePackAddress 9 "DIGIT SIX"#, 0x0036) 
    93     , (unsafePackAddress 11 "DIGIT SEVEN"#, 0x0037) 
    94     , (unsafePackAddress 11 "DIGIT EIGHT"#, 0x0038) 
    95     , (unsafePackAddress 10 "DIGIT NINE"#, 0x0039) 
    96     , (unsafePackAddress 5 "COLON"#, 0x003A) 
    97     , (unsafePackAddress 9 "SEMICOLON"#, 0x003B) 
    98     , (unsafePackAddress 14 "LESS-THAN SIGN"#, 0x003C) 
    99     , (unsafePackAddress 11 "EQUALS SIGN"#, 0x003D) 
    100     , (unsafePackAddress 17 "GREATER-THAN SIGN"#, 0x003E) 
    101     , (unsafePackAddress 13 "QUESTION MARK"#, 0x003F) 
    102     , (unsafePackAddress 13 "COMMERCIAL AT"#, 0x0040) 
    103     , (unsafePackAddress 22 "LATIN CAPITAL LETTER A"#, 0x0041) 
    104     , (unsafePackAddress 22 "LATIN CAPITAL LETTER B"#, 0x0042) 
    105     , (unsafePackAddress 22 "LATIN CAPITAL LETTER C"#, 0x0043) 
    106     , (unsafePackAddress 22 "LATIN CAPITAL LETTER D"#, 0x0044) 
    107     , (unsafePackAddress 22 "LATIN CAPITAL LETTER E"#, 0x0045) 
    108     , (unsafePackAddress 22 "LATIN CAPITAL LETTER F"#, 0x0046) 
    109     , (unsafePackAddress 22 "LATIN CAPITAL LETTER G"#, 0x0047) 
    110     , (unsafePackAddress 22 "LATIN CAPITAL LETTER H"#, 0x0048) 
    111     , (unsafePackAddress 22 "LATIN CAPITAL LETTER I"#, 0x0049) 
    112     , (unsafePackAddress 22 "LATIN CAPITAL LETTER J"#, 0x004A) 
    113     , (unsafePackAddress 22 "LATIN CAPITAL LETTER K"#, 0x004B) 
    114     , (unsafePackAddress 22 "LATIN CAPITAL LETTER L"#, 0x004C) 
    115     , (unsafePackAddress 22 "LATIN CAPITAL LETTER M"#, 0x004D) 
    116     , (unsafePackAddress 22 "LATIN CAPITAL LETTER N"#, 0x004E) 
    117     , (unsafePackAddress 22 "LATIN CAPITAL LETTER O"#, 0x004F) 
    118     , (unsafePackAddress 22 "LATIN CAPITAL LETTER P"#, 0x0050) 
    119     , (unsafePackAddress 22 "LATIN CAPITAL LETTER Q"#, 0x0051) 
    120     , (unsafePackAddress 22 "LATIN CAPITAL LETTER R"#, 0x0052) 
    121     , (unsafePackAddress 22 "LATIN CAPITAL LETTER S"#, 0x0053) 
    122     , (unsafePackAddress 22 "LATIN CAPITAL LETTER T"#, 0x0054) 
    123     , (unsafePackAddress 22 "LATIN CAPITAL LETTER U"#, 0x0055) 
    124     , (unsafePackAddress 22 "LATIN CAPITAL LETTER V"#, 0x0056) 
    125     , (unsafePackAddress 22 "LATIN CAPITAL LETTER W"#, 0x0057) 
    126     , (unsafePackAddress 22 "LATIN CAPITAL LETTER X"#, 0x0058) 
    127     , (unsafePackAddress 22 "LATIN CAPITAL LETTER Y"#, 0x0059) 
    128     , (unsafePackAddress 22 "LATIN CAPITAL LETTER Z"#, 0x005A) 
    129     , (unsafePackAddress 19 "LEFT SQUARE BRACKET"#, 0x005B) 
    130     , (unsafePackAddress 15 "REVERSE SOLIDUS"#, 0x005C) 
    131     , (unsafePackAddress 20 "RIGHT SQUARE BRACKET"#, 0x005D) 
    132     , (unsafePackAddress 17 "CIRCUMFLEX ACCENT"#, 0x005E) 
    133     , (unsafePackAddress 8 "LOW LINE"#, 0x005F) 
    134     , (unsafePackAddress 12 "GRAVE ACCENT"#, 0x0060) 
    135     , (unsafePackAddress 20 "LATIN SMALL LETTER A"#, 0x0061) 
    136     , (unsafePackAddress 20 "LATIN SMALL LETTER B"#, 0x0062) 
    137     , (unsafePackAddress 20 "LATIN SMALL LETTER C"#, 0x0063) 
    138     , (unsafePackAddress 20 "LATIN SMALL LETTER D"#, 0x0064) 
    139     , (unsafePackAddress 20 "LATIN SMALL LETTER E"#, 0x0065) 
    140     , (unsafePackAddress 20 "LATIN SMALL LETTER F"#, 0x0066) 
    141     , (unsafePackAddress 20 "LATIN SMALL LETTER G"#, 0x0067) 
    142     , (unsafePackAddress 20 "LATIN SMALL LETTER H"#, 0x0068) 
    143     , (unsafePackAddress 20 "LATIN SMALL LETTER I"#, 0x0069) 
    144     , (unsafePackAddress 20 "LATIN SMALL LETTER J"#, 0x006A) 
    145     , (unsafePackAddress 20 "LATIN SMALL LETTER K"#, 0x006B) 
    146     , (unsafePackAddress 20 "LATIN SMALL LETTER L"#, 0x006C) 
    147     , (unsafePackAddress 20 "LATIN SMALL LETTER M"#, 0x006D) 
    148     , (unsafePackAddress 20 "LATIN SMALL LETTER N"#, 0x006E) 
    149     , (unsafePackAddress 20 "LATIN SMALL LETTER O"#, 0x006F) 
    150     , (unsafePackAddress 20 "LATIN SMALL LETTER P"#, 0x0070) 
    151     , (unsafePackAddress 20 "LATIN SMALL LETTER Q"#, 0x0071) 
    152     , (unsafePackAddress 20 "LATIN SMALL LETTER R"#, 0x0072) 
    153     , (unsafePackAddress 20 "LATIN SMALL LETTER S"#, 0x0073) 
    154     , (unsafePackAddress 20 "LATIN SMALL LETTER T"#, 0x0074) 
    155     , (unsafePackAddress 20 "LATIN SMALL LETTER U"#, 0x0075) 
    156     , (unsafePackAddress 20 "LATIN SMALL LETTER V"#, 0x0076) 
    157     , (unsafePackAddress 20 "LATIN SMALL LETTER W"#, 0x0077) 
    158     , (unsafePackAddress 20 "LATIN SMALL LETTER X"#, 0x0078) 
    159     , (unsafePackAddress 20 "LATIN SMALL LETTER Y"#, 0x0079) 
    160     , (unsafePackAddress 20 "LATIN SMALL LETTER Z"#, 0x007A) 
    161     , (unsafePackAddress 18 "LEFT CURLY BRACKET"#, 0x007B) 
    162     , (unsafePackAddress 13 "VERTICAL LINE"#, 0x007C) 
    163     , (unsafePackAddress 19 "RIGHT CURLY BRACKET"#, 0x007D) 
    164     , (unsafePackAddress 5 "TILDE"#, 0x007E) 
    165     , (unsafePackAddress 6 "DELETE"#, 0x007F) 
    166     , (unsafePackAddress 20 "BREAK PERMITTED HERE"#, 0x0082) 
    167     , (unsafePackAddress 13 "NO BREAK HERE"#, 0x0083) 
    168     , (unsafePackAddress 15 "NEXT LINE (NEL)"#, 0x0085) 
    169     , (unsafePackAddress 9 "NEXT LINE"#, 0x0085) 
    170     , (unsafePackAddress 22 "START OF SELECTED AREA"#, 0x0086) 
    171     , (unsafePackAddress 20 "END OF SELECTED AREA"#, 0x0087) 
    172     , (unsafePackAddress 24 "CHARACTER TABULATION SET"#, 0x0088) 
    173     , (unsafePackAddress 39 "CHARACTER TABULATION WITH JUSTIFICATION"#, 0x0089) 
    174     , (unsafePackAddress 19 "LINE TABULATION SET"#, 0x008A) 
    175     , (unsafePackAddress 20 "PARTIAL LINE FORWARD"#, 0x008B) 
    176     , (unsafePackAddress 21 "PARTIAL LINE BACKWARD"#, 0x008C) 
    177     , (unsafePackAddress 17 "REVERSE LINE FEED"#, 0x008D) 
    178     , (unsafePackAddress 16 "SINGLE SHIFT TWO"#, 0x008E) 
    179     , (unsafePackAddress 18 "SINGLE SHIFT THREE"#, 0x008F) 
    180     , (unsafePackAddress 21 "DEVICE CONTROL STRING"#, 0x0090) 
    181     , (unsafePackAddress 15 "PRIVATE USE ONE"#, 0x0091) 
    182     , (unsafePackAddress 15 "PRIVATE USE TWO"#, 0x0092) 
    183     , (unsafePackAddress 18 "SET TRANSMIT STATE"#, 0x0093) 
    184     , (unsafePackAddress 16 "CANCEL CHARACTER"#, 0x0094) 
    185     , (unsafePackAddress 15 "MESSAGE WAITING"#, 0x0095) 
    186     , (unsafePackAddress 21 "START OF GUARDED AREA"#, 0x0096) 
    187     , (unsafePackAddress 19 "END OF GUARDED AREA"#, 0x0097) 
    188     , (unsafePackAddress 15 "START OF STRING"#, 0x0098) 
    189     , (unsafePackAddress 27 "SINGLE CHARACTER INTRODUCER"#, 0x009A) 
    190     , (unsafePackAddress 27 "CONTROL SEQUENCE INTRODUCER"#, 0x009B) 
    191     , (unsafePackAddress 17 "STRING TERMINATOR"#, 0x009C) 
    192     , (unsafePackAddress 24 "OPERATING SYSTEM COMMAND"#, 0x009D) 
    193     , (unsafePackAddress 15 "PRIVACY MESSAGE"#, 0x009E) 
    194     , (unsafePackAddress 27 "APPLICATION PROGRAM COMMAND"#, 0x009F) 
    195     , (unsafePackAddress 14 "NO-BREAK SPACE"#, 0x00A0) 
    196     , (unsafePackAddress 25 "INVERTED EXCLAMATION MARK"#, 0x00A1) 
    197     , (unsafePackAddress 9 "CENT SIGN"#, 0x00A2) 
    198     , (unsafePackAddress 10 "POUND SIGN"#, 0x00A3) 
    199     , (unsafePackAddress 13 "CURRENCY SIGN"#, 0x00A4) 
    200     , (unsafePackAddress 8 "YEN SIGN"#, 0x00A5) 
    201     , (unsafePackAddress 10 "BROKEN BAR"#, 0x00A6) 
    202     , (unsafePackAddress 12 "SECTION SIGN"#, 0x00A7) 
    203     , (unsafePackAddress 9 "DIAERESIS"#, 0x00A8) 
    204     , (unsafePackAddress 14 "COPYRIGHT SIGN"#, 0x00A9) 
    205     , (unsafePackAddress 26 "FEMININE ORDINAL INDICATOR"#, 0x00AA) 
    206     , (unsafePackAddress 41 "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00AB) 
    207     , (unsafePackAddress 8 "NOT SIGN"#, 0x00AC) 
    208     , (unsafePackAddress 11 "SOFT HYPHEN"#, 0x00AD) 
    209     , (unsafePackAddress 15 "REGISTERED SIGN"#, 0x00AE) 
    210     , (unsafePackAddress 6 "MACRON"#, 0x00AF) 
    211     , (unsafePackAddress 11 "DEGREE SIGN"#, 0x00B0) 
    212     , (unsafePackAddress 15 "PLUS-MINUS SIGN"#, 0x00B1) 
    213     , (unsafePackAddress 15 "SUPERSCRIPT TWO"#, 0x00B2) 
    214     , (unsafePackAddress 17 "SUPERSCRIPT THREE"#, 0x00B3) 
    215     , (unsafePackAddress 12 "ACUTE ACCENT"#, 0x00B4) 
    216     , (unsafePackAddress 10 "MICRO SIGN"#, 0x00B5) 
    217     , (unsafePackAddress 12 "PILCROW SIGN"#, 0x00B6) 
    218     , (unsafePackAddress 10 "MIDDLE DOT"#, 0x00B7) 
    219     , (unsafePackAddress 7 "CEDILLA"#, 0x00B8) 
    220     , (unsafePackAddress 15 "SUPERSCRIPT ONE"#, 0x00B9) 
    221     , (unsafePackAddress 27 "MASCULINE ORDINAL INDICATOR"#, 0x00BA) 
    222     , (unsafePackAddress 42 "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00BB) 
    223     , (unsafePackAddress 27 "VULGAR FRACTION ONE QUARTER"#, 0x00BC) 
    224     , (unsafePackAddress 24 "VULGAR FRACTION ONE HALF"#, 0x00BD) 
    225     , (unsafePackAddress 30 "VULGAR FRACTION THREE QUARTERS"#, 0x00BE) 
    226     , (unsafePackAddress 22 "INVERTED QUESTION MARK"#, 0x00BF) 
    227     , (unsafePackAddress 33 "LATIN CAPITAL LETTER A WITH GRAVE"#, 0x00C0) 
    228     , (unsafePackAddress 33 "LATIN CAPITAL LETTER A WITH ACUTE"#, 0x00C1) 
    229     , (unsafePackAddress 38 "LATIN CAPITAL LETTER A WITH CIRCUMFLEX"#, 0x00C2) 
    230     , (unsafePackAddress 33 "LATIN CAPITAL LETTER A WITH TILDE"#, 0x00C3) 
    231     , (unsafePackAddress 37 "LATIN CAPITAL LETTER A WITH DIAERESIS"#, 0x00C4) 
    232     , (unsafePackAddress 38 "LATIN CAPITAL LETTER A WITH RING ABOVE"#, 0x00C5) 
    233     , (unsafePackAddress 23 "LATIN CAPITAL LETTER AE"#, 0x00C6) 
    234     , (unsafePackAddress 35 "LATIN CAPITAL LETTER C WITH CEDILLA"#, 0x00C7) 
    235     , (unsafePackAddress 33 "LATIN CAPITAL LETTER E WITH GRAVE"#, 0x00C8) 
    236     , (unsafePackAddress 33 "LATIN CAPITAL LETTER E WITH ACUTE"#, 0x00C9) 
    237     , (unsafePackAddress 38 "LATIN CAPITAL LETTER E WITH CIRCUMFLEX"#, 0x00CA) 
    238     , (unsafePackAddress 37 "LATIN CAPITAL LETTER E WITH DIAERESIS"#, 0x00CB) 
    239     , (unsafePackAddress 33 "LATIN CAPITAL LETTER I WITH GRAVE"#, 0x00CC) 
    240     , (unsafePackAddress 33 "LATIN CAPITAL LETTER I WITH ACUTE"#, 0x00CD) 
    241     , (unsafePackAddress 38 "LATIN CAPITAL LETTER I WITH CIRCUMFLEX"#, 0x00CE) 
    242     , (unsafePackAddress 37 "LATIN CAPITAL LETTER I WITH DIAERESIS"#, 0x00CF) 
    243     , (unsafePackAddress 24 "LATIN CAPITAL LETTER ETH"#, 0x00D0) 
    244     , (unsafePackAddress 33 "LATIN CAPITAL LETTER N WITH TILDE"#, 0x00D1) 
    245     , (unsafePackAddress 33 "LATIN CAPITAL LETTER O WITH GRAVE"#, 0x00D2) 
    246     , (unsafePackAddress 33 "LATIN CAPITAL LETTER O WITH ACUTE"#, 0x00D3) 
    247     , (unsafePackAddress 38 "LATIN CAPITAL LETTER O WITH CIRCUMFLEX"#, 0x00D4) 
    248     , (unsafePackAddress 33 "LATIN CAPITAL LETTER O WITH TILDE"#, 0x00D5) 
    249     , (unsafePackAddress 37 "LATIN CAPITAL LETTER O WITH DIAERESIS"#, 0x00D6) 
    250     , (unsafePackAddress 19 "MULTIPLICATION SIGN"#, 0x00D7) 
    251     , (unsafePackAddress 34 "LATIN CAPITAL LETTER O WITH STROKE"#, 0x00D8) 
    252     , (unsafePackAddress 33 "LATIN CAPITAL LETTER U WITH GRAVE"#, 0x00D9) 
    253     , (unsafePackAddress 33 "LATIN CAPITAL LETTER U WITH ACUTE"#, 0x00DA) 
    254     , (unsafePackAddress 38 "LATIN CAPITAL LETTER U WITH CIRCUMFLEX"#, 0x00DB) 
    255     , (unsafePackAddress 37 "LATIN CAPITAL LETTER U WITH DIAERESIS"#, 0x00DC) 
    256     , (unsafePackAddress 33 "LATIN CAPITAL LETTER Y WITH ACUTE"#, 0x00DD) 
    257     , (unsafePackAddress 26 "LATIN CAPITAL LETTER THORN"#, 0x00DE) 
    258     , (unsafePackAddress 26 "LATIN SMALL LETTER SHARP S"#, 0x00DF) 
    259     , (unsafePackAddress 31 "LATIN SMALL LETTER A WITH GRAVE"#, 0x00E0) 
    260     , (unsafePackAddress 31 "LATIN SMALL LETTER A WITH ACUTE"#, 0x00E1) 
    261     , (unsafePackAddress 36 "LATIN SMALL LETTER A WITH CIRCUMFLEX"#, 0x00E2) 
    262     , (unsafePackAddress 31 "LATIN SMALL LETTER A WITH TILDE"#, 0x00E3) 
    263     , (unsafePackAddress 35 "LATIN SMALL LETTER A WITH DIAERESIS"#, 0x00E4) 
    264     , (unsafePackAddress 36 "LATIN SMALL LETTER A WITH RING ABOVE"#, 0x00E5) 
    265     , (unsafePackAddress 21 "LATIN SMALL LETTER AE"#, 0x00E6) 
    266     , (unsafePackAddress 33 "LATIN SMALL LETTER C WITH CEDILLA"#, 0x00E7) 
    267     , (unsafePackAddress 31 "LATIN SMALL LETTER E WITH GRAVE"#, 0x00E8) 
    268     , (unsafePackAddress 31 "LATIN SMALL LETTER E WITH ACUTE"#, 0x00E9) 
    269     , (unsafePackAddress 36 "LATIN SMALL LETTER E WITH CIRCUMFLEX"#, 0x00EA) 
    270     , (unsafePackAddress 35 "LATIN SMALL LETTER E WITH DIAERESIS"#, 0x00EB) 
    271     , (unsafePackAddress 31 "LATIN SMALL LETTER I WITH GRAVE"#, 0x00EC) 
    272     , (unsafePackAddress 31 "LATIN SMALL LETTER I WITH ACUTE"#, 0x00ED) 
    273     , (unsafePackAddress 36 "LATIN SMALL LETTER I WITH CIRCUMFLEX"#, 0x00EE) 
    274     , (unsafePackAddress 35 "LATIN SMALL LETTER I WITH DIAERESIS"#, 0x00EF) 
    275     , (unsafePackAddress 22 "LATIN SMALL LETTER ETH"#, 0x00F0) 
    276     , (unsafePackAddress 31 "LATIN SMALL LETTER N WITH TILDE"#, 0x00F1) 
    277     , (unsafePackAddress 31 "LATIN SMALL LETTER O WITH GRAVE"#, 0x00F2) 
    278     , (unsafePackAddress 31 "LATIN SMALL LETTER O WITH ACUTE"#, 0x00F3) 
    279     , (unsafePackAddress 36 "LATIN SMALL LETTER O WITH CIRCUMFLEX"#, 0x00F4) 
    280     , (unsafePackAddress 31 "LATIN SMALL LETTER O WITH TILDE"#, 0x00F5) 
    281     , (unsafePackAddress 35 "LATIN SMALL LETTER O WITH DIAERESIS"#, 0x00F6) 
    282     , (unsafePackAddress 13 "DIVISION SIGN"#, 0x00F7) 
    283     , (unsafePackAddress 32 "LATIN SMALL LETTER O WITH STROKE"#, 0x00F8) 
    284     , (unsafePackAddress 31 "LATIN SMALL LETTER U WITH GRAVE"#, 0x00F9) 
    285     , (unsafePackAddress 31 "LATIN SMALL LETTER U WITH ACUTE"#, 0x00FA) 
    286     , (unsafePackAddress 36 "LATIN SMALL LETTER U WITH CIRCUMFLEX"#, 0x00FB) 
    287     , (unsafePackAddress 35 "LATIN SMALL LETTER U WITH DIAERESIS"#, 0x00FC) 
    288     , (unsafePackAddress 31 "LATIN SMALL LETTER Y WITH ACUTE"#, 0x00FD) 
    289     , (unsafePackAddress 24 "LATIN SMALL LETTER THORN"#, 0x00FE) 
    290     , (unsafePackAddress 35 "LATIN SMALL LETTER Y WITH DIAERESIS"#, 0x00FF) 
     34_NameToCode = unsafePerformIO $! hashList =<< mapM compute 
     35    [ (unsafePackAddressLen 4 "NULL"#, 0x0000) 
     36    , (unsafePackAddressLen 16 "START OF HEADING"#, 0x0001) 
     37    , (unsafePackAddressLen 13 "START OF TEXT"#, 0x0002) 
     38    , (unsafePackAddressLen 11 "END OF TEXT"#, 0x0003) 
     39    , (unsafePackAddressLen 19 "END OF TRANSMISSION"#, 0x0004) 
     40    , (unsafePackAddressLen 7 "ENQUIRY"#, 0x0005) 
     41    , (unsafePackAddressLen 11 "ACKNOWLEDGE"#, 0x0006) 
     42    , (unsafePackAddressLen 4 "BELL"#, 0x0007) 
     43    , (unsafePackAddressLen 9 "BACKSPACE"#, 0x0008) 
     44    , (unsafePackAddressLen 20 "CHARACTER TABULATION"#, 0x0009) 
     45    , (unsafePackAddressLen 14 "LINE FEED (LF)"#, 0x000A) 
     46    , (unsafePackAddressLen 9 "LINE FEED"#, 0x000A) 
     47    , (unsafePackAddressLen 15 "LINE TABULATION"#, 0x000B) 
     48    , (unsafePackAddressLen 14 "FORM FEED (FF)"#, 0x000C) 
     49    , (unsafePackAddressLen 9 "FORM FEED"#, 0x000C) 
     50    , (unsafePackAddressLen 20 "CARRIAGE RETURN (CR)"#, 0x000D) 
     51    , (unsafePackAddressLen 15 "CARRIAGE RETURN"#, 0x000D) 
     52    , (unsafePackAddressLen 9 "SHIFT OUT"#, 0x000E) 
     53    , (unsafePackAddressLen 8 "SHIFT IN"#, 0x000F) 
     54    , (unsafePackAddressLen 16 "DATA LINK ESCAPE"#, 0x0010) 
     55    , (unsafePackAddressLen 18 "DEVICE CONTROL ONE"#, 0x0011) 
     56    , (unsafePackAddressLen 18 "DEVICE CONTROL TWO"#, 0x0012) 
     57    , (unsafePackAddressLen 20 "DEVICE CONTROL THREE"#, 0x0013) 
     58    , (unsafePackAddressLen 19 "DEVICE CONTROL FOUR"#, 0x0014) 
     59    , (unsafePackAddressLen 20 "NEGATIVE ACKNOWLEDGE"#, 0x0015) 
     60    , (unsafePackAddressLen 16 "SYNCHRONOUS IDLE"#, 0x0016) 
     61    , (unsafePackAddressLen 25 "END OF TRANSMISSION BLOCK"#, 0x0017) 
     62    , (unsafePackAddressLen 6 "CANCEL"#, 0x0018) 
     63    , (unsafePackAddressLen 13 "END OF MEDIUM"#, 0x0019) 
     64    , (unsafePackAddressLen 10 "SUBSTITUTE"#, 0x001A) 
     65    , (unsafePackAddressLen 6 "ESCAPE"#, 0x001B) 
     66    , (unsafePackAddressLen 26 "INFORMATION SEPARATOR FOUR"#, 0x001C) 
     67    , (unsafePackAddressLen 27 "INFORMATION SEPARATOR THREE"#, 0x001D) 
     68    , (unsafePackAddressLen 25 "INFORMATION SEPARATOR TWO"#, 0x001E) 
     69    , (unsafePackAddressLen 25 "INFORMATION SEPARATOR ONE"#, 0x001F) 
     70    , (unsafePackAddressLen 5 "SPACE"#, 0x0020) 
     71    , (unsafePackAddressLen 16 "EXCLAMATION MARK"#, 0x0021) 
     72    , (unsafePackAddressLen 14 "QUOTATION MARK"#, 0x0022) 
     73    , (unsafePackAddressLen 11 "NUMBER SIGN"#, 0x0023) 
     74    , (unsafePackAddressLen 11 "DOLLAR SIGN"#, 0x0024) 
     75    , (unsafePackAddressLen 12 "PERCENT SIGN"#, 0x0025) 
     76    , (unsafePackAddressLen 9 "AMPERSAND"#, 0x0026) 
     77    , (unsafePackAddressLen 10 "APOSTROPHE"#, 0x0027) 
     78    , (unsafePackAddressLen 16 "LEFT PARENTHESIS"#, 0x0028) 
     79    , (unsafePackAddressLen 17 "RIGHT PARENTHESIS"#, 0x0029) 
     80    , (unsafePackAddressLen 8 "ASTERISK"#, 0x002A) 
     81    , (unsafePackAddressLen 9 "PLUS SIGN"#, 0x002B) 
     82    , (unsafePackAddressLen 5 "COMMA"#, 0x002C) 
     83    , (unsafePackAddressLen 12 "HYPHEN-MINUS"#, 0x002D) 
     84    , (unsafePackAddressLen 9 "FULL STOP"#, 0x002E) 
     85    , (unsafePackAddressLen 7 "SOLIDUS"#, 0x002F) 
     86    , (unsafePackAddressLen 10 "DIGIT ZERO"#, 0x0030) 
     87    , (unsafePackAddressLen 9 "DIGIT ONE"#, 0x0031) 
     88    , (unsafePackAddressLen 9 "DIGIT TWO"#, 0x0032) 
     89    , (unsafePackAddressLen 11 "DIGIT THREE"#, 0x0033) 
     90    , (unsafePackAddressLen 10 "DIGIT FOUR"#, 0x0034) 
     91    , (unsafePackAddressLen 10 "DIGIT FIVE"#, 0x0035) 
     92    , (unsafePackAddressLen 9 "DIGIT SIX"#, 0x0036) 
     93    , (unsafePackAddressLen 11 "DIGIT SEVEN"#, 0x0037) 
     94    , (unsafePackAddressLen 11 "DIGIT EIGHT"#, 0x0038) 
     95    , (unsafePackAddressLen 10 "DIGIT NINE"#, 0x0039) 
     96    , (unsafePackAddressLen 5 "COLON"#, 0x003A) 
     97    , (unsafePackAddressLen 9 "SEMICOLON"#, 0x003B) 
     98    , (unsafePackAddressLen 14 "LESS-THAN SIGN"#, 0x003C) 
     99    , (unsafePackAddressLen 11 "EQUALS SIGN"#, 0x003D) 
     100    , (unsafePackAddressLen 17 "GREATER-THAN SIGN"#, 0x003E) 
     101    , (unsafePackAddressLen 13 "QUESTION MARK"#, 0x003F) 
     102    , (unsafePackAddressLen 13 "COMMERCIAL AT"#, 0x0040) 
     103    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER A"#, 0x0041) 
     104    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER B"#, 0x0042) 
     105    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER C"#, 0x0043) 
     106    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER D"#, 0x0044) 
     107    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER E"#, 0x0045) 
     108    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER F"#, 0x0046) 
     109    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER G"#, 0x0047) 
     110    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER H"#, 0x0048) 
     111    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER I"#, 0x0049) 
     112    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER J"#, 0x004A) 
     113    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER K"#, 0x004B) 
     114    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER L"#, 0x004C) 
     115    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER M"#, 0x004D) 
     116    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER N"#, 0x004E) 
     117    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER O"#, 0x004F) 
     118    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER P"#, 0x0050) 
     119    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Q"#, 0x0051) 
     120    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER R"#, 0x0052) 
     121    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER S"#, 0x0053) 
     122    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER T"#, 0x0054) 
     123    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER U"#, 0x0055) 
     124    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER V"#, 0x0056) 
     125    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER W"#, 0x0057) 
     126    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER X"#, 0x0058) 
     127    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Y"#, 0x0059) 
     128    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Z"#, 0x005A) 
     129    , (unsafePackAddressLen 19 "LEFT SQUARE BRACKET"#, 0x005B) 
     130    , (unsafePackAddressLen 15 "REVERSE SOLIDUS"#, 0x005C) 
     131    , (unsafePackAddressLen 20 "RIGHT SQUARE BRACKET"#, 0x005D) 
     132    , (unsafePackAddressLen 17 "CIRCUMFLEX ACCENT"#, 0x005E) 
     133    , (unsafePackAddressLen 8 "LOW LINE"#, 0x005F) 
     134    , (unsafePackAddressLen 12 "GRAVE ACCENT"#, 0x0060) 
     135    , (unsafePackAddressLen 20 "LATIN SMALL LETTER A"#, 0x0061) 
     136    , (unsafePackAddressLen 20 "LATIN SMALL LETTER B"#, 0x0062) 
     137    , (unsafePackAddressLen 20 "LATIN SMALL LETTER C"#, 0x0063) 
     138    , (unsafePackAddressLen 20 "LATIN SMALL LETTER D"#, 0x0064) 
     139    , (unsafePackAddressLen 20 "LATIN SMALL LETTER E"#, 0x0065) 
     140    , (unsafePackAddressLen 20 "LATIN SMALL LETTER F"#, 0x0066) 
     141    , (unsafePackAddressLen 20 "LATIN SMALL LETTER G"#, 0x0067) 
     142    , (unsafePackAddressLen 20 "LATIN SMALL LETTER H"#, 0x0068) 
     143    , (unsafePackAddressLen 20 "LATIN SMALL LETTER I"#, 0x0069) 
     144    , (unsafePackAddressLen 20 "LATIN SMALL LETTER J"#, 0x006A) 
     145    , (unsafePackAddressLen 20 "LATIN SMALL LETTER K"#, 0x006B) 
     146    , (unsafePackAddressLen 20 "LATIN SMALL LETTER L"#, 0x006C) 
     147    , (unsafePackAddressLen 20 "LATIN SMALL LETTER M"#, 0x006D) 
     148    , (unsafePackAddressLen 20 "LATIN SMALL LETTER N"#, 0x006E) 
     149    , (unsafePackAddressLen 20 "LATIN SMALL LETTER O"#, 0x006F) 
     150    , (unsafePackAddressLen 20 "LATIN SMALL LETTER P"#, 0x0070) 
     151    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Q"#, 0x0071) 
     152    , (unsafePackAddressLen 20 "LATIN SMALL LETTER R"#, 0x0072) 
     153    , (unsafePackAddressLen 20 "LATIN SMALL LETTER S"#, 0x0073) 
     154    , (unsafePackAddressLen 20 "LATIN SMALL LETTER T"#, 0x0074) 
     155    , (unsafePackAddressLen 20 "LATIN SMALL LETTER U"#, 0x0075) 
     156    , (unsafePackAddressLen 20 "LATIN SMALL LETTER V"#, 0x0076) 
     157    , (unsafePackAddressLen 20 "LATIN SMALL LETTER W"#, 0x0077) 
     158    , (unsafePackAddressLen 20 "LATIN SMALL LETTER X"#, 0x0078) 
     159    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Y"#, 0x0079) 
     160    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Z"#, 0x007A) 
     161    , (unsafePackAddressLen 18 "LEFT CURLY BRACKET"#, 0x007B) 
     162    , (unsafePackAddressLen 13 "VERTICAL LINE"#, 0x007C) 
     163    , (unsafePackAddressLen 19 "RIGHT CURLY BRACKET"#, 0x007D) 
     164    , (unsafePackAddressLen 5 "TILDE"#, 0x007E) 
     165    , (unsafePackAddressLen 6 "DELETE"#, 0x007F) 
     166    , (unsafePackAddressLen 20 "BREAK PERMITTED HERE"#, 0x0082) 
     167    , (unsafePackAddressLen 13 "NO BREAK HERE"#, 0x0083) 
     168    , (unsafePackAddressLen 15 "NEXT LINE (NEL)"#, 0x0085) 
     169    , (unsafePackAddressLen 9 "NEXT LINE"#, 0x0085) 
     170    , (unsafePackAddressLen 22 "START OF SELECTED AREA"#, 0x0086) 
     171    , (unsafePackAddressLen 20 "END OF SELECTED AREA"#, 0x0087) 
     172    , (unsafePackAddressLen 24 "CHARACTER TABULATION SET"#, 0x0088) 
     173    , (unsafePackAddressLen 39 "CHARACTER TABULATION WITH JUSTIFICATION"#, 0x0089) 
     174    , (unsafePackAddressLen 19 "LINE TABULATION SET"#, 0x008A) 
     175    , (unsafePackAddressLen 20 "PARTIAL LINE FORWARD"#, 0x008B) 
     176    , (unsafePackAddressLen 21 "PARTIAL LINE BACKWARD"#, 0x008C) 
     177    , (unsafePackAddressLen 17 "REVERSE LINE FEED"#, 0x008D) 
     178    , (unsafePackAddressLen 16 "SINGLE SHIFT TWO"#, 0x008E) 
     179    , (unsafePackAddressLen 18 "SINGLE SHIFT THREE"#, 0x008F) 
     180    , (unsafePackAddressLen 21 "DEVICE CONTROL STRING"#, 0x0090) 
     181    , (unsafePackAddressLen 15 "PRIVATE USE ONE"#, 0x0091) 
     182    , (unsafePackAddressLen 15 "PRIVATE USE TWO"#, 0x0092) 
     183    , (unsafePackAddressLen 18 "SET TRANSMIT STATE"#, 0x0093) 
     184    , (unsafePackAddressLen 16 "CANCEL CHARACTER"#, 0x0094) 
     185    , (unsafePackAddressLen 15 "MESSAGE WAITING"#, 0x0095) 
     186    , (unsafePackAddressLen 21 "START OF GUARDED AREA"#, 0x0096) 
     187    , (unsafePackAddressLen 19 "END OF GUARDED AREA"#, 0x0097) 
     188    , (unsafePackAddressLen 15 "START OF STRING"#, 0x0098) 
     189    , (unsafePackAddressLen 27 "SINGLE CHARACTER INTRODUCER"#, 0x009A) 
     190    , (unsafePackAddressLen 27 "CONTROL SEQUENCE INTRODUCER"#, 0x009B) 
     191    , (unsafePackAddressLen 17 "STRING TERMINATOR"#, 0x009C) 
     192    , (unsafePackAddressLen 24 "OPERATING SYSTEM COMMAND"#, 0x009D) 
     193    , (unsafePackAddressLen 15 "PRIVACY MESSAGE"#, 0x009E) 
     194    , (unsafePackAddressLen 27 "APPLICATION PROGRAM COMMAND"#, 0x009F) 
     195    , (unsafePackAddressLen 14 "NO-BREAK SPACE"#, 0x00A0) 
     196    , (unsafePackAddressLen 25 "INVERTED EXCLAMATION MARK"#, 0x00A1) 
     197    , (unsafePackAddressLen 9 "CENT SIGN"#, 0x00A2) 
     198    , (unsafePackAddressLen 10 "POUND SIGN"#, 0x00A3) 
     199    , (unsafePackAddressLen 13 "CURRENCY SIGN"#, 0x00A4) 
     200    , (unsafePackAddressLen 8 "YEN SIGN"#, 0x00A5) 
     201    , (unsafePackAddressLen 10 "BROKEN BAR"#, 0x00A6) 
     202    , (unsafePackAddressLen 12 "SECTION SIGN"#, 0x00A7) 
     203    , (unsafePackAddressLen 9 "DIAERESIS"#, 0x00A8) 
     204    , (unsafePackAddressLen 14 "COPYRIGHT SIGN"#, 0x00A9) 
     205    , (unsafePackAddressLen 26 "FEMININE ORDINAL INDICATOR"#, 0x00AA) 
     206    , (unsafePackAddressLen 41 "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00AB) 
     207    , (unsafePackAddressLen 8 "NOT SIGN"#, 0x00AC) 
     208    , (unsafePackAddressLen 11 "SOFT HYPHEN"#, 0x00AD) 
     209    , (unsafePackAddressLen 15 "REGISTERED SIGN"#, 0x00AE) 
     210    , (unsafePackAddressLen 6 "MACRON"#, 0x00AF) 
     211    , (unsafePackAddressLen 11 "DEGREE SIGN"#, 0x00B0) 
     212    , (unsafePackAddressLen 15 "PLUS-MINUS SIGN"#, 0x00B1) 
     213    , (unsafePackAddressLen 15 "SUPERSCRIPT TWO"#, 0x00B2) 
     214    , (unsafePackAddressLen 17 "SUPERSCRIPT THREE"#, 0x00B3) 
     215    , (unsafePackAddressLen 12 "ACUTE ACCENT"#, 0x00B4) 
     216    , (unsafePackAddressLen 10 "MICRO SIGN"#, 0x00B5) 
     217    , (unsafePackAddressLen 12 "PILCROW SIGN"#, 0x00B6) 
     218    , (unsafePackAddressLen 10 "MIDDLE DOT"#, 0x00B7) 
     219    , (unsafePackAddressLen 7 "CEDILLA"#, 0x00B8) 
     220    , (unsafePackAddressLen 15 "SUPERSCRIPT ONE"#, 0x00B9) 
     221    , (unsafePackAddressLen 27 "MASCULINE ORDINAL INDICATOR"#, 0x00BA) 
     222    , (unsafePackAddressLen 42 "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00BB) 
     223    , (unsafePackAddressLen 27 "VULGAR FRACTION ONE QUARTER"#, 0x00BC) 
     224    , (unsafePackAddressLen 24 "VULGAR FRACTION ONE HALF"#, 0x00BD) 
     225    , (unsafePackAddressLen 30 "VULGAR FRACTION THREE QUARTERS"#, 0x00BE) 
     226    , (unsafePackAddressLen 22 "INVERTED QUESTION MARK"#, 0x00BF) 
     227    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH GRAVE"#, 0x00C0) 
     228    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH ACUTE"#, 0x00C1) 
     229    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER A WITH CIRCUMFLEX"#, 0x00C2) 
     230    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH TILDE"#, 0x00C3) 
     231    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER A WITH DIAERESIS"#, 0x00C4) 
     232    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER A WITH RING ABOVE"#, 0x00C5) 
     233    , (unsafePackAddressLen 23 "LATIN CAPITAL LETTER AE"#, 0x00C6) 
     234    , (unsafePackAddressLen 35 "LATIN CAPITAL LETTER C WITH CEDILLA"#, 0x00C7) 
     235    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER E WITH GRAVE"#, 0x00C8) 
     236    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER E WITH ACUTE"#, 0x00C9) 
     237    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER E WITH CIRCUMFLEX"#, 0x00CA) 
     238    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER E WITH DIAERESIS"#, 0x00CB) 
     239    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER I WITH GRAVE"#, 0x00CC) 
     240    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER I WITH ACUTE"#, 0x00CD) 
     241    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER I WITH CIRCUMFLEX"#, 0x00CE) 
     242    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER I WITH DIAERESIS"#, 0x00CF) 
     243    , (unsafePackAddressLen 24 "LATIN CAPITAL LETTER ETH"#, 0x00D0) 
     244    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER N WITH TILDE"#, 0x00D1) 
     245    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH GRAVE"#, 0x00D2) 
     246    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH ACUTE"#, 0x00D3) 
     247    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER O WITH CIRCUMFLEX"#, 0x00D4) 
     248    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH TILDE"#, 0x00D5) 
     249    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER O WITH DIAERESIS"#, 0x00D6) 
     250    , (unsafePackAddressLen 19 "MULTIPLICATION SIGN"#, 0x00D7) 
     251    , (unsafePackAddressLen 34 "LATIN CAPITAL LETTER O WITH STROKE"#, 0x00D8) 
     252    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER U WITH GRAVE"#, 0x00D9) 
     253    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER U WITH ACUTE"#, 0x00DA) 
     254    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER U WITH CIRCUMFLEX"#, 0x00DB) 
     255    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER U WITH DIAERESIS"#, 0x00DC) 
     256    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER Y WITH ACUTE"#, 0x00DD) 
     257    , (unsafePackAddressLen 26 "LATIN CAPITAL LETTER THORN"#, 0x00DE) 
     258    , (unsafePackAddressLen 26 "LATIN SMALL LETTER SHARP S"#, 0x00DF) 
     259    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH GRAVE"#, 0x00E0) 
     260    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH ACUTE"#, 0x00E1) 
     261    , (unsafePackAddressLen 36 "LATIN SMALL LETTER A WITH CIRCUMFLEX"#, 0x00E2) 
     262    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH TILDE"#, 0x00E3) 
     263    , (unsafePackAddressLen 35 "LATIN SMALL LETTER A WITH DIAERESIS"#, 0x00E4) 
     264    , (unsafePackAddressLen 36 "LATIN SMALL LETTER A WITH RING ABOVE"#, 0x00E5) 
     265    , (unsafePackAddressLen 21 "LATIN SMALL LETTER AE"#, 0x00E6) 
     266    , (unsafePackAddressLen 33 "LATIN SMALL LETTER C WITH CEDILLA"#, 0x00E7) 
     267    , (unsafePackAddressLen 31 "LATIN SMALL LETTER E WITH GRAVE"#, 0x00E8) 
     268    , (unsafePackAddressLen 31 "LATIN SMALL LETTER E WITH ACUTE"#, 0x00E9) 
     269    , (unsafePackAddressLen 36 "LATIN SMALL LETTER E WITH CIRCUMFLEX"#, 0x00EA) 
     270    , (unsafePackAddressLen 35 "LATIN SMALL LETTER E WITH DIAERESIS"#, 0x00EB) 
     271    , (unsafePackAddressLen 31 "LATIN SMALL LETTER I WITH GRAVE"#, 0x00EC) 
     272    , (unsafePackAddressLen 31 "LATIN SMALL LETTER I WITH ACUTE"#, 0x00ED) 
     273    , (unsafePackAddressLen 36 "LATIN SMALL LETTER I WITH CIRCUMFLEX"#, 0x00EE) 
     274    , (unsafePackAddressLen 35 "LATIN SMALL LETTER I WITH DIAERESIS"#, 0x00EF) 
     275    , (unsafePackAddressLen 22 "LATIN SMALL LETTER ETH"#, 0x00F0) 
     276    , (unsafePackAddressLen 31 "LATIN SMALL LETTER N WITH TILDE"#, 0x00F1) 
     277    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH GRAVE"#, 0x00F2) 
     278    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH ACUTE"#, 0x00F3) 
     279    , (unsafePackAddressLen 36 "LATIN SMALL LETTER O WITH CIRCUMFLEX"#, 0x00F4) 
     280    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH TILDE"#, 0x00F5) 
     281    , (unsafePackAddressLen 35 "LATIN SMALL LETTER O WITH DIAERESIS"#, 0x00F6) 
     282    , (unsafePackAddressLen 13 "DIVISION SIGN"#, 0x00F7) 
     283    , (unsafePackAddressLen 32 "LATIN SMALL LETTER O WITH STROKE"#, 0x00F8) 
     284    , (unsafePackAddressLen 31 "LATIN SMALL LETTER U WITH GRAVE"#, 0x00F9) 
     285    , (unsafePackAddressLen 31 "LATIN SMALL LETTER U WITH ACUTE"#, 0x00FA) 
     286    , (unsafePackAddressLen 36 "LATIN SMALL LETTER U WITH CIRCUMFLEX"#, 0x00FB) 
     287    , (unsafePackAddressLen 35 "LATIN SMALL LETTER U WITH DIAERESIS"#, 0x00FC) 
     288    , (unsafePackAddressLen 31 "LATIN SMALL LETTER Y WITH ACUTE"#, 0x00FD) 
     289    , (unsafePackAddressLen 24 "LATIN SMALL LETTER THORN"#, 0x00FE) 
     290    , (unsafePackAddressLen 35 "LATIN SMALL LETTER Y WITH DIAERESIS"#, 0x00FF) 
    291291    ] 
    292292    where 
    293293    hashList :: [(ByteString, a)] -> IO (H.HashTable ByteString a) 
    294     hashList = H.fromList hash 
     294    hashList = H.fromList hashByteString 
     295    compute (f, y) = f >>= \x -> return (x, y) 
    295296 
    296297#endif