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

{- |
   Module     : Text.XML.HXT.RelaxNG.Unicode.CharProps
   Copyright  : Copyright (C) 2005 Uwe Schmidt
   License    : MIT

   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
   Stability  : experimental
   Portability: portable
   Version    : $Id$

   Unicode character properties

   don't edit this module
   it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt'

-}

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

module Text.XML.HXT.RelaxNG.Unicode.CharProps
  ( isUnicodeC
  , isUnicodeCc
  , isUnicodeCf
  , isUnicodeCo
  , isUnicodeCs
  , isUnicodeL
  , isUnicodeLl
  , isUnicodeLm
  , isUnicodeLo
  , isUnicodeLt
  , isUnicodeLu
  , isUnicodeM
  , isUnicodeMc
  , isUnicodeMe
  , isUnicodeMn
  , isUnicodeN
  , isUnicodeNd
  , isUnicodeNl
  , isUnicodeNo
  , isUnicodeP
  , isUnicodePc
  , isUnicodePd
  , isUnicodePe
  , isUnicodePf
  , isUnicodePi
  , isUnicodePo
  , isUnicodePs
  , isUnicodeS
  , isUnicodeSc
  , isUnicodeSk
  , isUnicodeSm
  , isUnicodeSo
  , isUnicodeZ
  , isUnicodeZl
  , isUnicodeZp
  , isUnicodeZs
  )
where

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

isInList	:: Char -> [(Char, Char)] -> Bool
isInList i =
   foldr (\(lb, ub) b -> i >= lb && (i <= ub || b)) False

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

isUnicodeC	:: Char -> Bool
isUnicodeC c
  = isInList c
    [ ('\NUL','\US')
    , ('\DEL','\159')
    , ('\173','\173')
    , ('\1536','\1539')
    , ('\1757','\1757')
    , ('\1807','\1807')
    , ('\6068','\6069')
    , ('\8203','\8207')
    , ('\8234','\8238')
    , ('\8288','\8291')
    , ('\8298','\8303')
    , ('\55296','\55296')
    , ('\56191','\56192')
    , ('\56319','\56320')
    , ('\57343','\57344')
    , ('\63743','\63743')
    , ('\65279','\65279')
    , ('\65529','\65531')
    , ('\119155','\119162')
    , ('\917505','\917505')
    , ('\917536','\917631')
    , ('\983040','\983040')
    , ('\1048573','\1048573')
    , ('\1048576','\1048576')
    , ('\1114109','\1114109')
    ]

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

isUnicodeCc	:: Char -> Bool
isUnicodeCc c
  = isInList c
    [ ('\NUL','\US')
    , ('\DEL','\159')
    ]

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

isUnicodeCf	:: Char -> Bool
isUnicodeCf c
  = isInList c
    [ ('\173','\173')
    , ('\1536','\1539')
    , ('\1757','\1757')
    , ('\1807','\1807')
    , ('\6068','\6069')
    , ('\8203','\8207')
    , ('\8234','\8238')
    , ('\8288','\8291')
    , ('\8298','\8303')
    , ('\65279','\65279')
    , ('\65529','\65531')
    , ('\119155','\119162')
    , ('\917505','\917505')
    , ('\917536','\917631')
    ]

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

isUnicodeCo	:: Char -> Bool
isUnicodeCo c
  = isInList c
    [ ('\57344','\57344')
    , ('\63743','\63743')
    , ('\983040','\983040')
    , ('\1048573','\1048573')
    , ('\1048576','\1048576')
    , ('\1114109','\1114109')
    ]

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

isUnicodeCs	:: Char -> Bool
isUnicodeCs c
  = isInList c
    [ ('\55296','\55296')
    , ('\56191','\56192')
    , ('\56319','\56320')
    , ('\57343','\57343')
    ]

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

isUnicodeL	:: Char -> Bool
isUnicodeL c
  = isInList c
    [ ('A','Z')
    , ('a','z')
    , ('\170','\170')
    , ('\181','\181')
    , ('\186','\186')
    , ('\192','\214')
    , ('\216','\246')
    , ('\248','\705')
    , ('\710','\721')
    , ('\736','\740')
    , ('\750','\750')
    , ('\890','\893')
    , ('\902','\902')
    , ('\904','\906')
    , ('\908','\908')
    , ('\910','\929')
    , ('\931','\974')
    , ('\976','\1013')
    , ('\1015','\1153')
    , ('\1162','\1299')
    , ('\1329','\1366')
    , ('\1369','\1369')
    , ('\1377','\1415')
    , ('\1488','\1514')
    , ('\1520','\1522')
    , ('\1569','\1594')
    , ('\1600','\1610')
    , ('\1646','\1647')
    , ('\1649','\1747')
    , ('\1749','\1749')
    , ('\1765','\1766')
    , ('\1774','\1775')
    , ('\1786','\1788')
    , ('\1791','\1791')
    , ('\1808','\1808')
    , ('\1810','\1839')
    , ('\1869','\1901')
    , ('\1920','\1957')
    , ('\1969','\1969')
    , ('\1994','\2026')
    , ('\2036','\2037')
    , ('\2042','\2042')
    , ('\2308','\2361')
    , ('\2365','\2365')
    , ('\2384','\2384')
    , ('\2392','\2401')
    , ('\2427','\2431')
    , ('\2437','\2444')
    , ('\2447','\2448')
    , ('\2451','\2472')
    , ('\2474','\2480')
    , ('\2482','\2482')
    , ('\2486','\2489')
    , ('\2493','\2493')
    , ('\2510','\2510')
    , ('\2524','\2525')
    , ('\2527','\2529')
    , ('\2544','\2545')
    , ('\2565','\2570')
    , ('\2575','\2576')
    , ('\2579','\2600')
    , ('\2602','\2608')
    , ('\2610','\2611')
    , ('\2613','\2614')
    , ('\2616','\2617')
    , ('\2649','\2652')
    , ('\2654','\2654')
    , ('\2674','\2676')
    , ('\2693','\2701')
    , ('\2703','\2705')
    , ('\2707','\2728')
    , ('\2730','\2736')
    , ('\2738','\2739')
    , ('\2741','\2745')
    , ('\2749','\2749')
    , ('\2768','\2768')
    , ('\2784','\2785')
    , ('\2821','\2828')
    , ('\2831','\2832')
    , ('\2835','\2856')
    , ('\2858','\2864')
    , ('\2866','\2867')
    , ('\2869','\2873')
    , ('\2877','\2877')
    , ('\2908','\2909')
    , ('\2911','\2913')
    , ('\2929','\2929')
    , ('\2947','\2947')
    , ('\2949','\2954')
    , ('\2958','\2960')
    , ('\2962','\2965')
    , ('\2969','\2970')
    , ('\2972','\2972')
    , ('\2974','\2975')
    , ('\2979','\2980')
    , ('\2984','\2986')
    , ('\2990','\3001')
    , ('\3077','\3084')
    , ('\3086','\3088')
    , ('\3090','\3112')
    , ('\3114','\3123')
    , ('\3125','\3129')
    , ('\3168','\3169')
    , ('\3205','\3212')
    , ('\3214','\3216')
    , ('\3218','\3240')
    , ('\3242','\3251')
    , ('\3253','\3257')
    , ('\3261','\3261')
    , ('\3294','\3294')
    , ('\3296','\3297')
    , ('\3333','\3340')
    , ('\3342','\3344')
    , ('\3346','\3368')
    , ('\3370','\3385')
    , ('\3424','\3425')
    , ('\3461','\3478')
    , ('\3482','\3505')
    , ('\3507','\3515')
    , ('\3517','\3517')
    , ('\3520','\3526')
    , ('\3585','\3632')
    , ('\3634','\3635')
    , ('\3648','\3654')
    , ('\3713','\3714')
    , ('\3716','\3716')
    , ('\3719','\3720')
    , ('\3722','\3722')
    , ('\3725','\3725')
    , ('\3732','\3735')
    , ('\3737','\3743')
    , ('\3745','\3747')
    , ('\3749','\3749')
    , ('\3751','\3751')
    , ('\3754','\3755')
    , ('\3757','\3760')
    , ('\3762','\3763')
    , ('\3773','\3773')
    , ('\3776','\3780')
    , ('\3782','\3782')
    , ('\3804','\3805')
    , ('\3840','\3840')
    , ('\3904','\3911')
    , ('\3913','\3946')
    , ('\3976','\3979')
    , ('\4096','\4129')
    , ('\4131','\4135')
    , ('\4137','\4138')
    , ('\4176','\4181')
    , ('\4256','\4293')
    , ('\4304','\4346')
    , ('\4348','\4348')
    , ('\4352','\4441')
    , ('\4447','\4514')
    , ('\4520','\4601')
    , ('\4608','\4680')
    , ('\4682','\4685')
    , ('\4688','\4694')
    , ('\4696','\4696')
    , ('\4698','\4701')
    , ('\4704','\4744')
    , ('\4746','\4749')
    , ('\4752','\4784')
    , ('\4786','\4789')
    , ('\4792','\4798')
    , ('\4800','\4800')
    , ('\4802','\4805')
    , ('\4808','\4822')
    , ('\4824','\4880')
    , ('\4882','\4885')
    , ('\4888','\4954')
    , ('\4992','\5007')
    , ('\5024','\5108')
    , ('\5121','\5740')
    , ('\5743','\5750')
    , ('\5761','\5786')
    , ('\5792','\5866')
    , ('\5888','\5900')
    , ('\5902','\5905')
    , ('\5920','\5937')
    , ('\5952','\5969')
    , ('\5984','\5996')
    , ('\5998','\6000')
    , ('\6016','\6067')
    , ('\6103','\6103')
    , ('\6108','\6108')
    , ('\6176','\6263')
    , ('\6272','\6312')
    , ('\6400','\6428')
    , ('\6480','\6509')
    , ('\6512','\6516')
    , ('\6528','\6569')
    , ('\6593','\6599')
    , ('\6656','\6678')
    , ('\6917','\6963')
    , ('\6981','\6987')
    , ('\7424','\7615')
    , ('\7680','\7835')
    , ('\7840','\7929')
    , ('\7936','\7957')
    , ('\7960','\7965')
    , ('\7968','\8005')
    , ('\8008','\8013')
    , ('\8016','\8023')
    , ('\8025','\8025')
    , ('\8027','\8027')
    , ('\8029','\8029')
    , ('\8031','\8061')
    , ('\8064','\8116')
    , ('\8118','\8124')
    , ('\8126','\8126')
    , ('\8130','\8132')
    , ('\8134','\8140')
    , ('\8144','\8147')
    , ('\8150','\8155')
    , ('\8160','\8172')
    , ('\8178','\8180')
    , ('\8182','\8188')
    , ('\8305','\8305')
    , ('\8319','\8319')
    , ('\8336','\8340')
    , ('\8450','\8450')
    , ('\8455','\8455')
    , ('\8458','\8467')
    , ('\8469','\8469')
    , ('\8473','\8477')
    , ('\8484','\8484')
    , ('\8486','\8486')
    , ('\8488','\8488')
    , ('\8490','\8493')
    , ('\8495','\8505')
    , ('\8508','\8511')
    , ('\8517','\8521')
    , ('\8526','\8526')
    , ('\8579','\8580')
    , ('\11264','\11310')
    , ('\11312','\11358')
    , ('\11360','\11372')
    , ('\11380','\11383')
    , ('\11392','\11492')
    , ('\11520','\11557')
    , ('\11568','\11621')
    , ('\11631','\11631')
    , ('\11648','\11670')
    , ('\11680','\11686')
    , ('\11688','\11694')
    , ('\11696','\11702')
    , ('\11704','\11710')
    , ('\11712','\11718')
    , ('\11720','\11726')
    , ('\11728','\11734')
    , ('\11736','\11742')
    , ('\12293','\12294')
    , ('\12337','\12341')
    , ('\12347','\12348')
    , ('\12353','\12438')
    , ('\12445','\12447')
    , ('\12449','\12538')
    , ('\12540','\12543')
    , ('\12549','\12588')
    , ('\12593','\12686')
    , ('\12704','\12727')
    , ('\12784','\12799')
    , ('\13312','\13312')
    , ('\19893','\19893')
    , ('\19968','\19968')
    , ('\40891','\40891')
    , ('\40960','\42124')
    , ('\42775','\42778')
    , ('\43008','\43009')
    , ('\43011','\43013')
    , ('\43015','\43018')
    , ('\43020','\43042')
    , ('\43072','\43123')
    , ('\44032','\44032')
    , ('\55203','\55203')
    , ('\63744','\64045')
    , ('\64048','\64106')
    , ('\64112','\64217')
    , ('\64256','\64262')
    , ('\64275','\64279')
    , ('\64285','\64285')
    , ('\64287','\64296')
    , ('\64298','\64310')
    , ('\64312','\64316')
    , ('\64318','\64318')
    , ('\64320','\64321')
    , ('\64323','\64324')
    , ('\64326','\64433')
    , ('\64467','\64829')
    , ('\64848','\64911')
    , ('\64914','\64967')
    , ('\65008','\65019')
    , ('\65136','\65140')
    , ('\65142','\65276')
    , ('\65313','\65338')
    , ('\65345','\65370')
    , ('\65382','\65470')
    , ('\65474','\65479')
    , ('\65482','\65487')
    , ('\65490','\65495')
    , ('\65498','\65500')
    , ('\65536','\65547')
    , ('\65549','\65574')
    , ('\65576','\65594')
    , ('\65596','\65597')
    , ('\65599','\65613')
    , ('\65616','\65629')
    , ('\65664','\65786')
    , ('\66304','\66334')
    , ('\66352','\66368')
    , ('\66370','\66377')
    , ('\66432','\66461')
    , ('\66464','\66499')
    , ('\66504','\66511')
    , ('\66560','\66717')
    , ('\67584','\67589')
    , ('\67592','\67592')
    , ('\67594','\67637')
    , ('\67639','\67640')
    , ('\67644','\67644')
    , ('\67647','\67647')
    , ('\67840','\67861')
    , ('\68096','\68096')
    , ('\68112','\68115')
    , ('\68117','\68119')
    , ('\68121','\68147')
    , ('\73728','\74606')
    , ('\119808','\119892')
    , ('\119894','\119964')
    , ('\119966','\119967')
    , ('\119970','\119970')
    , ('\119973','\119974')
    , ('\119977','\119980')
    , ('\119982','\119993')
    , ('\119995','\119995')
    , ('\119997','\120003')
    , ('\120005','\120069')
    , ('\120071','\120074')
    , ('\120077','\120084')
    , ('\120086','\120092')
    , ('\120094','\120121')
    , ('\120123','\120126')
    , ('\120128','\120132')
    , ('\120134','\120134')
    , ('\120138','\120144')
    , ('\120146','\120485')
    , ('\120488','\120512')
    , ('\120514','\120538')
    , ('\120540','\120570')
    , ('\120572','\120596')
    , ('\120598','\120628')
    , ('\120630','\120654')
    , ('\120656','\120686')
    , ('\120688','\120712')
    , ('\120714','\120744')
    , ('\120746','\120770')
    , ('\120772','\120779')
    , ('\131072','\131072')
    , ('\173782','\173782')
    , ('\194560','\195101')
    ]

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

isUnicodeLl	:: Char -> Bool
isUnicodeLl c
  = isInList c
    [ ('a','z')
    , ('\170','\170')
    , ('\181','\181')
    , ('\186','\186')
    , ('\223','\246')
    , ('\248','\255')
    , ('\257','\257')
    , ('\259','\259')
    , ('\261','\261')
    , ('\263','\263')
    , ('\265','\265')
    , ('\267','\267')
    , ('\269','\269')
    , ('\271','\271')
    , ('\273','\273')
    , ('\275','\275')
    , ('\277','\277')
    , ('\279','\279')
    , ('\281','\281')
    , ('\283','\283')
    , ('\285','\285')
    , ('\287','\287')
    , ('\289','\289')
    , ('\291','\291')
    , ('\293','\293')
    , ('\295','\295')
    , ('\297','\297')
    , ('\299','\299')
    , ('\301','\301')
    , ('\303','\303')
    , ('\305','\305')
    , ('\307','\307')
    , ('\309','\309')
    , ('\311','\312')
    , ('\314','\314')
    , ('\316','\316')
    , ('\318','\318')
    , ('\320','\320')
    , ('\322','\322')
    , ('\324','\324')
    , ('\326','\326')
    , ('\328','\329')
    , ('\331','\331')
    , ('\333','\333')
    , ('\335','\335')
    , ('\337','\337')
    , ('\339','\339')
    , ('\341','\341')
    , ('\343','\343')
    , ('\345','\345')
    , ('\347','\347')
    , ('\349','\349')
    , ('\351','\351')
    , ('\353','\353')
    , ('\355','\355')
    , ('\357','\357')
    , ('\359','\359')
    , ('\361','\361')
    , ('\363','\363')
    , ('\365','\365')
    , ('\367','\367')
    , ('\369','\369')
    , ('\371','\371')
    , ('\373','\373')
    , ('\375','\375')
    , ('\378','\378')
    , ('\380','\380')
    , ('\382','\384')
    , ('\387','\387')
    , ('\389','\389')
    , ('\392','\392')
    , ('\396','\397')
    , ('\402','\402')
    , ('\405','\405')
    , ('\409','\411')
    , ('\414','\414')
    , ('\417','\417')
    , ('\419','\419')
    , ('\421','\421')
    , ('\424','\424')
    , ('\426','\427')
    , ('\429','\429')
    , ('\432','\432')
    , ('\436','\436')
    , ('\438','\438')
    , ('\441','\442')
    , ('\445','\447')
    , ('\454','\454')
    , ('\457','\457')
    , ('\460','\460')
    , ('\462','\462')
    , ('\464','\464')
    , ('\466','\466')
    , ('\468','\468')
    , ('\470','\470')
    , ('\472','\472')
    , ('\474','\474')
    , ('\476','\477')
    , ('\479','\479')
    , ('\481','\481')
    , ('\483','\483')
    , ('\485','\485')
    , ('\487','\487')
    , ('\489','\489')
    , ('\491','\491')
    , ('\493','\493')
    , ('\495','\496')
    , ('\499','\499')
    , ('\501','\501')
    , ('\505','\505')
    , ('\507','\507')
    , ('\509','\509')
    , ('\511','\511')
    , ('\513','\513')
    , ('\515','\515')
    , ('\517','\517')
    , ('\519','\519')
    , ('\521','\521')
    , ('\523','\523')
    , ('\525','\525')
    , ('\527','\527')
    , ('\529','\529')
    , ('\531','\531')
    , ('\533','\533')
    , ('\535','\535')
    , ('\537','\537')
    , ('\539','\539')
    , ('\541','\541')
    , ('\543','\543')
    , ('\545','\545')
    , ('\547','\547')
    , ('\549','\549')
    , ('\551','\551')
    , ('\553','\553')
    , ('\555','\555')
    , ('\557','\557')
    , ('\559','\559')
    , ('\561','\561')
    , ('\563','\569')
    , ('\572','\572')
    , ('\575','\576')
    , ('\578','\578')
    , ('\583','\583')
    , ('\585','\585')
    , ('\587','\587')
    , ('\589','\589')
    , ('\591','\659')
    , ('\661','\687')
    , ('\891','\893')
    , ('\912','\912')
    , ('\940','\974')
    , ('\976','\977')
    , ('\981','\983')
    , ('\985','\985')
    , ('\987','\987')
    , ('\989','\989')
    , ('\991','\991')
    , ('\993','\993')
    , ('\995','\995')
    , ('\997','\997')
    , ('\999','\999')
    , ('\1001','\1001')
    , ('\1003','\1003')
    , ('\1005','\1005')
    , ('\1007','\1011')
    , ('\1013','\1013')
    , ('\1016','\1016')
    , ('\1019','\1020')
    , ('\1072','\1119')
    , ('\1121','\1121')
    , ('\1123','\1123')
    , ('\1125','\1125')
    , ('\1127','\1127')
    , ('\1129','\1129')
    , ('\1131','\1131')
    , ('\1133','\1133')
    , ('\1135','\1135')
    , ('\1137','\1137')
    , ('\1139','\1139')
    , ('\1141','\1141')
    , ('\1143','\1143')
    , ('\1145','\1145')
    , ('\1147','\1147')
    , ('\1149','\1149')
    , ('\1151','\1151')
    , ('\1153','\1153')
    , ('\1163','\1163')
    , ('\1165','\1165')
    , ('\1167','\1167')
    , ('\1169','\1169')
    , ('\1171','\1171')
    , ('\1173','\1173')
    , ('\1175','\1175')
    , ('\1177','\1177')
    , ('\1179','\1179')
    , ('\1181','\1181')
    , ('\1183','\1183')
    , ('\1185','\1185')
    , ('\1187','\1187')
    , ('\1189','\1189')
    , ('\1191','\1191')
    , ('\1193','\1193')
    , ('\1195','\1195')
    , ('\1197','\1197')
    , ('\1199','\1199')
    , ('\1201','\1201')
    , ('\1203','\1203')
    , ('\1205','\1205')
    , ('\1207','\1207')
    , ('\1209','\1209')
    , ('\1211','\1211')
    , ('\1213','\1213')
    , ('\1215','\1215')
    , ('\1218','\1218')
    , ('\1220','\1220')
    , ('\1222','\1222')
    , ('\1224','\1224')
    , ('\1226','\1226')
    , ('\1228','\1228')
    , ('\1230','\1231')
    , ('\1233','\1233')
    , ('\1235','\1235')
    , ('\1237','\1237')
    , ('\1239','\1239')
    , ('\1241','\1241')
    , ('\1243','\1243')
    , ('\1245','\1245')
    , ('\1247','\1247')
    , ('\1249','\1249')
    , ('\1251','\1251')
    , ('\1253','\1253')
    , ('\1255','\1255')
    , ('\1257','\1257')
    , ('\1259','\1259')
    , ('\1261','\1261')
    , ('\1263','\1263')
    , ('\1265','\1265')
    , ('\1267','\1267')
    , ('\1269','\1269')
    , ('\1271','\1271')
    , ('\1273','\1273')
    , ('\1275','\1275')
    , ('\1277','\1277')
    , ('\1279','\1279')
    , ('\1281','\1281')
    , ('\1283','\1283')
    , ('\1285','\1285')
    , ('\1287','\1287')
    , ('\1289','\1289')
    , ('\1291','\1291')
    , ('\1293','\1293')
    , ('\1295','\1295')
    , ('\1297','\1297')
    , ('\1299','\1299')
    , ('\1377','\1415')
    , ('\7424','\7467')
    , ('\7522','\7543')
    , ('\7545','\7578')
    , ('\7681','\7681')
    , ('\7683','\7683')
    , ('\7685','\7685')
    , ('\7687','\7687')
    , ('\7689','\7689')
    , ('\7691','\7691')
    , ('\7693','\7693')
    , ('\7695','\7695')
    , ('\7697','\7697')
    , ('\7699','\7699')
    , ('\7701','\7701')
    , ('\7703','\7703')
    , ('\7705','\7705')
    , ('\7707','\7707')
    , ('\7709','\7709')
    , ('\7711','\7711')
    , ('\7713','\7713')
    , ('\7715','\7715')
    , ('\7717','\7717')
    , ('\7719','\7719')
    , ('\7721','\7721')
    , ('\7723','\7723')
    , ('\7725','\7725')
    , ('\7727','\7727')
    , ('\7729','\7729')
    , ('\7731','\7731')
    , ('\7733','\7733')
    , ('\7735','\7735')
    , ('\7737','\7737')
    , ('\7739','\7739')
    , ('\7741','\7741')
    , ('\7743','\7743')
    , ('\7745','\7745')
    , ('\7747','\7747')
    , ('\7749','\7749')
    , ('\7751','\7751')
    , ('\7753','\7753')
    , ('\7755','\7755')
    , ('\7757','\7757')
    , ('\7759','\7759')
    , ('\7761','\7761')
    , ('\7763','\7763')
    , ('\7765','\7765')
    , ('\7767','\7767')
    , ('\7769','\7769')
    , ('\7771','\7771')
    , ('\7773','\7773')
    , ('\7775','\7775')
    , ('\7777','\7777')
    , ('\7779','\7779')
    , ('\7781','\7781')
    , ('\7783','\7783')
    , ('\7785','\7785')
    , ('\7787','\7787')
    , ('\7789','\7789')
    , ('\7791','\7791')
    , ('\7793','\7793')
    , ('\7795','\7795')
    , ('\7797','\7797')
    , ('\7799','\7799')
    , ('\7801','\7801')
    , ('\7803','\7803')
    , ('\7805','\7805')
    , ('\7807','\7807')
    , ('\7809','\7809')
    , ('\7811','\7811')
    , ('\7813','\7813')
    , ('\7815','\7815')
    , ('\7817','\7817')
    , ('\7819','\7819')
    , ('\7821','\7821')
    , ('\7823','\7823')
    , ('\7825','\7825')
    , ('\7827','\7827')
    , ('\7829','\7835')
    , ('\7841','\7841')
    , ('\7843','\7843')
    , ('\7845','\7845')
    , ('\7847','\7847')
    , ('\7849','\7849')
    , ('\7851','\7851')
    , ('\7853','\7853')
    , ('\7855','\7855')
    , ('\7857','\7857')
    , ('\7859','\7859')
    , ('\7861','\7861')
    , ('\7863','\7863')
    , ('\7865','\7865')
    , ('\7867','\7867')
    , ('\7869','\7869')
    , ('\7871','\7871')
    , ('\7873','\7873')
    , ('\7875','\7875')
    , ('\7877','\7877')
    , ('\7879','\7879')
    , ('\7881','\7881')
    , ('\7883','\7883')
    , ('\7885','\7885')
    , ('\7887','\7887')
    , ('\7889','\7889')
    , ('\7891','\7891')
    , ('\7893','\7893')
    , ('\7895','\7895')
    , ('\7897','\7897')
    , ('\7899','\7899')
    , ('\7901','\7901')
    , ('\7903','\7903')
    , ('\7905','\7905')
    , ('\7907','\7907')
    , ('\7909','\7909')
    , ('\7911','\7911')
    , ('\7913','\7913')
    , ('\7915','\7915')
    , ('\7917','\7917')
    , ('\7919','\7919')
    , ('\7921','\7921')
    , ('\7923','\7923')
    , ('\7925','\7925')
    , ('\7927','\7927')
    , ('\7929','\7929')
    , ('\7936','\7943')
    , ('\7952','\7957')
    , ('\7968','\7975')
    , ('\7984','\7991')
    , ('\8000','\8005')
    , ('\8016','\8023')
    , ('\8032','\8039')
    , ('\8048','\8061')
    , ('\8064','\8071')
    , ('\8080','\8087')
    , ('\8096','\8103')
    , ('\8112','\8116')
    , ('\8118','\8119')
    , ('\8126','\8126')
    , ('\8130','\8132')
    , ('\8134','\8135')
    , ('\8144','\8147')
    , ('\8150','\8151')
    , ('\8160','\8167')
    , ('\8178','\8180')
    , ('\8182','\8183')
    , ('\8305','\8305')
    , ('\8319','\8319')
    , ('\8458','\8458')
    , ('\8462','\8463')
    , ('\8467','\8467')
    , ('\8495','\8495')
    , ('\8500','\8500')
    , ('\8505','\8505')
    , ('\8508','\8509')
    , ('\8518','\8521')
    , ('\8526','\8526')
    , ('\8580','\8580')
    , ('\11312','\11358')
    , ('\11361','\11361')
    , ('\11365','\11366')
    , ('\11368','\11368')
    , ('\11370','\11370')
    , ('\11372','\11372')
    , ('\11380','\11380')
    , ('\11382','\11383')
    , ('\11393','\11393')
    , ('\11395','\11395')
    , ('\11397','\11397')
    , ('\11399','\11399')
    , ('\11401','\11401')
    , ('\11403','\11403')
    , ('\11405','\11405')
    , ('\11407','\11407')
    , ('\11409','\11409')
    , ('\11411','\11411')
    , ('\11413','\11413')
    , ('\11415','\11415')
    , ('\11417','\11417')
    , ('\11419','\11419')
    , ('\11421','\11421')
    , ('\11423','\11423')
    , ('\11425','\11425')
    , ('\11427','\11427')
    , ('\11429','\11429')
    , ('\11431','\11431')
    , ('\11433','\11433')
    , ('\11435','\11435')
    , ('\11437','\11437')
    , ('\11439','\11439')
    , ('\11441','\11441')
    , ('\11443','\11443')
    , ('\11445','\11445')
    , ('\11447','\11447')
    , ('\11449','\11449')
    , ('\11451','\11451')
    , ('\11453','\11453')
    , ('\11455','\11455')
    , ('\11457','\11457')
    , ('\11459','\11459')
    , ('\11461','\11461')
    , ('\11463','\11463')
    , ('\11465','\11465')
    , ('\11467','\11467')
    , ('\11469','\11469')
    , ('\11471','\11471')
    , ('\11473','\11473')
    , ('\11475','\11475')
    , ('\11477','\11477')
    , ('\11479','\11479')
    , ('\11481','\11481')
    , ('\11483','\11483')
    , ('\11485','\11485')
    , ('\11487','\11487')
    , ('\11489','\11489')
    , ('\11491','\11492')
    , ('\11520','\11557')
    , ('\64256','\64262')
    , ('\64275','\64279')
    , ('\65345','\65370')
    , ('\66600','\66639')
    , ('\119834','\119859')
    , ('\119886','\119892')
    , ('\119894','\119911')
    , ('\119938','\119963')
    , ('\119990','\119993')
    , ('\119995','\119995')
    , ('\119997','\120003')
    , ('\120005','\120015')
    , ('\120042','\120067')
    , ('\120094','\120119')
    , ('\120146','\120171')
    , ('\120198','\120223')
    , ('\120250','\120275')
    , ('\120302','\120327')
    , ('\120354','\120379')
    , ('\120406','\120431')
    , ('\120458','\120485')
    , ('\120514','\120538')
    , ('\120540','\120545')
    , ('\120572','\120596')
    , ('\120598','\120603')
    , ('\120630','\120654')
    , ('\120656','\120661')
    , ('\120688','\120712')
    , ('\120714','\120719')
    , ('\120746','\120770')
    , ('\120772','\120777')
    , ('\120779','\120779')
    ]

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

isUnicodeLm	:: Char -> Bool
isUnicodeLm c
  = isInList c
    [ ('\688','\705')
    , ('\710','\721')
    , ('\736','\740')
    , ('\750','\750')
    , ('\890','\890')
    , ('\1369','\1369')
    , ('\1600','\1600')
    , ('\1765','\1766')
    , ('\2036','\2037')
    , ('\2042','\2042')
    , ('\3654','\3654')
    , ('\3782','\3782')
    , ('\4348','\4348')
    , ('\6103','\6103')
    , ('\6211','\6211')
    , ('\7468','\7521')
    , ('\7544','\7544')
    , ('\7579','\7615')
    , ('\8336','\8340')
    , ('\11631','\11631')
    , ('\12293','\12293')
    , ('\12337','\12341')
    , ('\12347','\12347')
    , ('\12445','\12446')
    , ('\12540','\12542')
    , ('\40981','\40981')
    , ('\42775','\42778')
    , ('\65392','\65392')
    , ('\65438','\65439')
    ]

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

isUnicodeLo	:: Char -> Bool
isUnicodeLo c
  = isInList c
    [ ('\443','\443')
    , ('\448','\451')
    , ('\660','\660')
    , ('\1488','\1514')
    , ('\1520','\1522')
    , ('\1569','\1594')
    , ('\1601','\1610')
    , ('\1646','\1647')
    , ('\1649','\1747')
    , ('\1749','\1749')
    , ('\1774','\1775')
    , ('\1786','\1788')
    , ('\1791','\1791')
    , ('\1808','\1808')
    , ('\1810','\1839')
    , ('\1869','\1901')
    , ('\1920','\1957')
    , ('\1969','\1969')
    , ('\1994','\2026')
    , ('\2308','\2361')
    , ('\2365','\2365')
    , ('\2384','\2384')
    , ('\2392','\2401')
    , ('\2427','\2431')
    , ('\2437','\2444')
    , ('\2447','\2448')
    , ('\2451','\2472')
    , ('\2474','\2480')
    , ('\2482','\2482')
    , ('\2486','\2489')
    , ('\2493','\2493')
    , ('\2510','\2510')
    , ('\2524','\2525')
    , ('\2527','\2529')
    , ('\2544','\2545')
    , ('\2565','\2570')
    , ('\2575','\2576')
    , ('\2579','\2600')
    , ('\2602','\2608')
    , ('\2610','\2611')
    , ('\2613','\2614')
    , ('\2616','\2617')
    , ('\2649','\2652')
    , ('\2654','\2654')
    , ('\2674','\2676')
    , ('\2693','\2701')
    , ('\2703','\2705')
    , ('\2707','\2728')
    , ('\2730','\2736')
    , ('\2738','\2739')
    , ('\2741','\2745')
    , ('\2749','\2749')
    , ('\2768','\2768')
    , ('\2784','\2785')
    , ('\2821','\2828')
    , ('\2831','\2832')
    , ('\2835','\2856')
    , ('\2858','\2864')
    , ('\2866','\2867')
    , ('\2869','\2873')
    , ('\2877','\2877')
    , ('\2908','\2909')
    , ('\2911','\2913')
    , ('\2929','\2929')
    , ('\2947','\2947')
    , ('\2949','\2954')
    , ('\2958','\2960')
    , ('\2962','\2965')
    , ('\2969','\2970')
    , ('\2972','\2972')
    , ('\2974','\2975')
    , ('\2979','\2980')
    , ('\2984','\2986')
    , ('\2990','\3001')
    , ('\3077','\3084')
    , ('\3086','\3088')
    , ('\3090','\3112')
    , ('\3114','\3123')
    , ('\3125','\3129')
    , ('\3168','\3169')
    , ('\3205','\3212')
    , ('\3214','\3216')
    , ('\3218','\3240')
    , ('\3242','\3251')
    , ('\3253','\3257')
    , ('\3261','\3261')
    , ('\3294','\3294')
    , ('\3296','\3297')
    , ('\3333','\3340')
    , ('\3342','\3344')
    , ('\3346','\3368')
    , ('\3370','\3385')
    , ('\3424','\3425')
    , ('\3461','\3478')
    , ('\3482','\3505')
    , ('\3507','\3515')
    , ('\3517','\3517')
    , ('\3520','\3526')
    , ('\3585','\3632')
    , ('\3634','\3635')
    , ('\3648','\3653')
    , ('\3713','\3714')
    , ('\3716','\3716')
    , ('\3719','\3720')
    , ('\3722','\3722')
    , ('\3725','\3725')
    , ('\3732','\3735')
    , ('\3737','\3743')
    , ('\3745','\3747')
    , ('\3749','\3749')
    , ('\3751','\3751')
    , ('\3754','\3755')
    , ('\3757','\3760')
    , ('\3762','\3763')
    , ('\3773','\3773')
    , ('\3776','\3780')
    , ('\3804','\3805')
    , ('\3840','\3840')
    , ('\3904','\3911')
    , ('\3913','\3946')
    , ('\3976','\3979')
    , ('\4096','\4129')
    , ('\4131','\4135')
    , ('\4137','\4138')
    , ('\4176','\4181')
    , ('\4304','\4346')
    , ('\4352','\4441')
    , ('\4447','\4514')
    , ('\4520','\4601')
    , ('\4608','\4680')
    , ('\4682','\4685')
    , ('\4688','\4694')
    , ('\4696','\4696')
    , ('\4698','\4701')
    , ('\4704','\4744')
    , ('\4746','\4749')
    , ('\4752','\4784')
    , ('\4786','\4789')
    , ('\4792','\4798')
    , ('\4800','\4800')
    , ('\4802','\4805')
    , ('\4808','\4822')
    , ('\4824','\4880')
    , ('\4882','\4885')
    , ('\4888','\4954')
    , ('\4992','\5007')
    , ('\5024','\5108')
    , ('\5121','\5740')
    , ('\5743','\5750')
    , ('\5761','\5786')
    , ('\5792','\5866')
    , ('\5888','\5900')
    , ('\5902','\5905')
    , ('\5920','\5937')
    , ('\5952','\5969')
    , ('\5984','\5996')
    , ('\5998','\6000')
    , ('\6016','\6067')
    , ('\6108','\6108')
    , ('\6176','\6210')
    , ('\6212','\6263')
    , ('\6272','\6312')
    , ('\6400','\6428')
    , ('\6480','\6509')
    , ('\6512','\6516')
    , ('\6528','\6569')
    , ('\6593','\6599')
    , ('\6656','\6678')
    , ('\6917','\6963')
    , ('\6981','\6987')
    , ('\8501','\8504')
    , ('\11568','\11621')
    , ('\11648','\11670')
    , ('\11680','\11686')
    , ('\11688','\11694')
    , ('\11696','\11702')
    , ('\11704','\11710')
    , ('\11712','\11718')
    , ('\11720','\11726')
    , ('\11728','\11734')
    , ('\11736','\11742')
    , ('\12294','\12294')
    , ('\12348','\12348')
    , ('\12353','\12438')
    , ('\12447','\12447')
    , ('\12449','\12538')
    , ('\12543','\12543')
    , ('\12549','\12588')
    , ('\12593','\12686')
    , ('\12704','\12727')
    , ('\12784','\12799')
    , ('\13312','\13312')
    , ('\19893','\19893')
    , ('\19968','\19968')
    , ('\40891','\40891')
    , ('\40960','\40980')
    , ('\40982','\42124')
    , ('\43008','\43009')
    , ('\43011','\43013')
    , ('\43015','\43018')
    , ('\43020','\43042')
    , ('\43072','\43123')
    , ('\44032','\44032')
    , ('\55203','\55203')
    , ('\63744','\64045')
    , ('\64048','\64106')
    , ('\64112','\64217')
    , ('\64285','\64285')
    , ('\64287','\64296')
    , ('\64298','\64310')
    , ('\64312','\64316')
    , ('\64318','\64318')
    , ('\64320','\64321')
    , ('\64323','\64324')
    , ('\64326','\64433')
    , ('\64467','\64829')
    , ('\64848','\64911')
    , ('\64914','\64967')
    , ('\65008','\65019')
    , ('\65136','\65140')
    , ('\65142','\65276')
    , ('\65382','\65391')
    , ('\65393','\65437')
    , ('\65440','\65470')
    , ('\65474','\65479')
    , ('\65482','\65487')
    , ('\65490','\65495')
    , ('\65498','\65500')
    , ('\65536','\65547')
    , ('\65549','\65574')
    , ('\65576','\65594')
    , ('\65596','\65597')
    , ('\65599','\65613')
    , ('\65616','\65629')
    , ('\65664','\65786')
    , ('\66304','\66334')
    , ('\66352','\66368')
    , ('\66370','\66377')
    , ('\66432','\66461')
    , ('\66464','\66499')
    , ('\66504','\66511')
    , ('\66640','\66717')
    , ('\67584','\67589')
    , ('\67592','\67592')
    , ('\67594','\67637')
    , ('\67639','\67640')
    , ('\67644','\67644')
    , ('\67647','\67647')
    , ('\67840','\67861')
    , ('\68096','\68096')
    , ('\68112','\68115')
    , ('\68117','\68119')
    , ('\68121','\68147')
    , ('\73728','\74606')
    , ('\131072','\131072')
    , ('\173782','\173782')
    , ('\194560','\195101')
    ]

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

isUnicodeLt	:: Char -> Bool
isUnicodeLt c
  = isInList c
    [ ('\453','\453')
    , ('\456','\456')
    , ('\459','\459')
    , ('\498','\498')
    , ('\8072','\8079')
    , ('\8088','\8095')
    , ('\8104','\8111')
    , ('\8124','\8124')
    , ('\8140','\8140')
    , ('\8188','\8188')
    ]

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

isUnicodeLu	:: Char -> Bool
isUnicodeLu c
  = isInList c
    [ ('A','Z')
    , ('\192','\214')
    , ('\216','\222')
    , ('\256','\256')
    , ('\258','\258')
    , ('\260','\260')
    , ('\262','\262')
    , ('\264','\264')
    , ('\266','\266')
    , ('\268','\268')
    , ('\270','\270')
    , ('\272','\272')
    , ('\274','\274')
    , ('\276','\276')
    , ('\278','\278')
    , ('\280','\280')
    , ('\282','\282')
    , ('\284','\284')
    , ('\286','\286')
    , ('\288','\288')
    , ('\290','\290')
    , ('\292','\292')
    , ('\294','\294')
    , ('\296','\296')
    , ('\298','\298')
    , ('\300','\300')
    , ('\302','\302')
    , ('\304','\304')
    , ('\306','\306')
    , ('\308','\308')
    , ('\310','\310')
    , ('\313','\313')
    , ('\315','\315')
    , ('\317','\317')
    , ('\319','\319')
    , ('\321','\321')
    , ('\323','\323')
    , ('\325','\325')
    , ('\327','\327')
    , ('\330','\330')
    , ('\332','\332')
    , ('\334','\334')
    , ('\336','\336')
    , ('\338','\338')
    , ('\340','\340')
    , ('\342','\342')
    , ('\344','\344')
    , ('\346','\346')
    , ('\348','\348')
    , ('\350','\350')
    , ('\352','\352')
    , ('\354','\354')
    , ('\356','\356')
    , ('\358','\358')
    , ('\360','\360')
    , ('\362','\362')
    , ('\364','\364')
    , ('\366','\366')
    , ('\368','\368')
    , ('\370','\370')
    , ('\372','\372')
    , ('\374','\374')
    , ('\376','\377')
    , ('\379','\379')
    , ('\381','\381')
    , ('\385','\386')
    , ('\388','\388')
    , ('\390','\391')
    , ('\393','\395')
    , ('\398','\401')
    , ('\403','\404')
    , ('\406','\408')
    , ('\412','\413')
    , ('\415','\416')
    , ('\418','\418')
    , ('\420','\420')
    , ('\422','\423')
    , ('\425','\425')
    , ('\428','\428')
    , ('\430','\431')
    , ('\433','\435')
    , ('\437','\437')
    , ('\439','\440')
    , ('\444','\444')
    , ('\452','\452')
    , ('\455','\455')
    , ('\458','\458')
    , ('\461','\461')
    , ('\463','\463')
    , ('\465','\465')
    , ('\467','\467')
    , ('\469','\469')
    , ('\471','\471')
    , ('\473','\473')
    , ('\475','\475')
    , ('\478','\478')
    , ('\480','\480')
    , ('\482','\482')
    , ('\484','\484')
    , ('\486','\486')
    , ('\488','\488')
    , ('\490','\490')
    , ('\492','\492')
    , ('\494','\494')
    , ('\497','\497')
    , ('\500','\500')
    , ('\502','\504')
    , ('\506','\506')
    , ('\508','\508')
    , ('\510','\510')
    , ('\512','\512')
    , ('\514','\514')
    , ('\516','\516')
    , ('\518','\518')
    , ('\520','\520')
    , ('\522','\522')
    , ('\524','\524')
    , ('\526','\526')
    , ('\528','\528')
    , ('\530','\530')
    , ('\532','\532')
    , ('\534','\534')
    , ('\536','\536')
    , ('\538','\538')
    , ('\540','\540')
    , ('\542','\542')
    , ('\544','\544')
    , ('\546','\546')
    , ('\548','\548')
    , ('\550','\550')
    , ('\552','\552')
    , ('\554','\554')
    , ('\556','\556')
    , ('\558','\558')
    , ('\560','\560')
    , ('\562','\562')
    , ('\570','\571')
    , ('\573','\574')
    , ('\577','\577')
    , ('\579','\582')
    , ('\584','\584')
    , ('\586','\586')
    , ('\588','\588')
    , ('\590','\590')
    , ('\902','\902')
    , ('\904','\906')
    , ('\908','\908')
    , ('\910','\911')
    , ('\913','\929')
    , ('\931','\939')
    , ('\978','\980')
    , ('\984','\984')
    , ('\986','\986')
    , ('\988','\988')
    , ('\990','\990')
    , ('\992','\992')
    , ('\994','\994')
    , ('\996','\996')
    , ('\998','\998')
    , ('\1000','\1000')
    , ('\1002','\1002')
    , ('\1004','\1004')
    , ('\1006','\1006')
    , ('\1012','\1012')
    , ('\1015','\1015')
    , ('\1017','\1018')
    , ('\1021','\1071')
    , ('\1120','\1120')
    , ('\1122','\1122')
    , ('\1124','\1124')
    , ('\1126','\1126')
    , ('\1128','\1128')
    , ('\1130','\1130')
    , ('\1132','\1132')
    , ('\1134','\1134')
    , ('\1136','\1136')
    , ('\1138','\1138')
    , ('\1140','\1140')
    , ('\1142','\1142')
    , ('\1144','\1144')
    , ('\1146','\1146')
    , ('\1148','\1148')
    , ('\1150','\1150')
    , ('\1152','\1152')
    , ('\1162','\1162')
    , ('\1164','\1164')
    , ('\1166','\1166')
    , ('\1168','\1168')
    , ('\1170','\1170')
    , ('\1172','\1172')
    , ('\1174','\1174')
    , ('\1176','\1176')
    , ('\1178','\1178')
    , ('\1180','\1180')
    , ('\1182','\1182')
    , ('\1184','\1184')
    , ('\1186','\1186')
    , ('\1188','\1188')
    , ('\1190','\1190')
    , ('\1192','\1192')
    , ('\1194','\1194')
    , ('\1196','\1196')
    , ('\1198','\1198')
    , ('\1200','\1200')
    , ('\1202','\1202')
    , ('\1204','\1204')
    , ('\1206','\1206')
    , ('\1208','\1208')
    , ('\1210','\1210')
    , ('\1212','\1212')
    , ('\1214','\1214')
    , ('\1216','\1217')
    , ('\1219','\1219')
    , ('\1221','\1221')
    , ('\1223','\1223')
    , ('\1225','\1225')
    , ('\1227','\1227')
    , ('\1229','\1229')
    , ('\1232','\1232')
    , ('\1234','\1234')
    , ('\1236','\1236')
    , ('\1238','\1238')
    , ('\1240','\1240')
    , ('\1242','\1242')
    , ('\1244','\1244')
    , ('\1246','\1246')
    , ('\1248','\1248')
    , ('\1250','\1250')
    , ('\1252','\1252')
    , ('\1254','\1254')
    , ('\1256','\1256')
    , ('\1258','\1258')
    , ('\1260','\1260')
    , ('\1262','\1262')
    , ('\1264','\1264')
    , ('\1266','\1266')
    , ('\1268','\1268')
    , ('\1270','\1270')
    , ('\1272','\1272')
    , ('\1274','\1274')
    , ('\1276','\1276')
    , ('\1278','\1278')
    , ('\1280','\1280')
    , ('\1282','\1282')
    , ('\1284','\1284')
    , ('\1286','\1286')
    , ('\1288','\1288')
    , ('\1290','\1290')
    , ('\1292','\1292')
    , ('\1294','\1294')
    , ('\1296','\1296')
    , ('\1298','\1298')
    , ('\1329','\1366')
    , ('\4256','\4293')
    , ('\7680','\7680')
    , ('\7682','\7682')
    , ('\7684','\7684')
    , ('\7686','\7686')
    , ('\7688','\7688')
    , ('\7690','\7690')
    , ('\7692','\7692')
    , ('\7694','\7694')
    , ('\7696','\7696')
    , ('\7698','\7698')
    , ('\7700','\7700')
    , ('\7702','\7702')
    , ('\7704','\7704')
    , ('\7706','\7706')
    , ('\7708','\7708')
    , ('\7710','\7710')
    , ('\7712','\7712')
    , ('\7714','\7714')
    , ('\7716','\7716')
    , ('\7718','\7718')
    , ('\7720','\7720')
    , ('\7722','\7722')
    , ('\7724','\7724')
    , ('\7726','\7726')
    , ('\7728','\7728')
    , ('\7730','\7730')
    , ('\7732','\7732')
    , ('\7734','\7734')
    , ('\7736','\7736')
    , ('\7738','\7738')
    , ('\7740','\7740')
    , ('\7742','\7742')
    , ('\7744','\7744')
    , ('\7746','\7746')
    , ('\7748','\7748')
    , ('\7750','\7750')
    , ('\7752','\7752')
    , ('\7754','\7754')
    , ('\7756','\7756')
    , ('\7758','\7758')
    , ('\7760','\7760')
    , ('\7762','\7762')
    , ('\7764','\7764')
    , ('\7766','\7766')
    , ('\7768','\7768')
    , ('\7770','\7770')
    , ('\7772','\7772')
    , ('\7774','\7774')
    , ('\7776','\7776')
    , ('\7778','\7778')
    , ('\7780','\7780')
    , ('\7782','\7782')
    , ('\7784','\7784')
    , ('\7786','\7786')
    , ('\7788','\7788')
    , ('\7790','\7790')
    , ('\7792','\7792')
    , ('\7794','\7794')
    , ('\7796','\7796')
    , ('\7798','\7798')
    , ('\7800','\7800')
    , ('\7802','\7802')
    , ('\7804','\7804')
    , ('\7806','\7806')
    , ('\7808','\7808')
    , ('\7810','\7810')
    , ('\7812','\7812')
    , ('\7814','\7814')
    , ('\7816','\7816')
    , ('\7818','\7818')
    , ('\7820','\7820')
    , ('\7822','\7822')
    , ('\7824','\7824')
    , ('\7826','\7826')
    , ('\7828','\7828')
    , ('\7840','\7840')
    , ('\7842','\7842')
    , ('\7844','\7844')
    , ('\7846','\7846')
    , ('\7848','\7848')
    , ('\7850','\7850')
    , ('\7852','\7852')
    , ('\7854','\7854')
    , ('\7856','\7856')
    , ('\7858','\7858')
    , ('\7860','\7860')
    , ('\7862','\7862')
    , ('\7864','\7864')
    , ('\7866','\7866')
    , ('\7868','\7868')
    , ('\7870','\7870')
    , ('\7872','\7872')
    , ('\7874','\7874')
    , ('\7876','\7876')
    , ('\7878','\7878')
    , ('\7880','\7880')
    , ('\7882','\7882')
    , ('\7884','\7884')
    , ('\7886','\7886')
    , ('\7888','\7888')
    , ('\7890','\7890')
    , ('\7892','\7892')
    , ('\7894','\7894')
    , ('\7896','\7896')
    , ('\7898','\7898')
    , ('\7900','\7900')
    , ('\7902','\7902')
    , ('\7904','\7904')
    , ('\7906','\7906')
    , ('\7908','\7908')
    , ('\7910','\7910')
    , ('\7912','\7912')
    , ('\7914','\7914')
    , ('\7916','\7916')
    , ('\7918','\7918')
    , ('\7920','\7920')
    , ('\7922','\7922')
    , ('\7924','\7924')
    , ('\7926','\7926')
    , ('\7928','\7928')
    , ('\7944','\7951')
    , ('\7960','\7965')
    , ('\7976','\7983')
    , ('\7992','\7999')
    , ('\8008','\8013')
    , ('\8025','\8025')
    , ('\8027','\8027')
    , ('\8029','\8029')
    , ('\8031','\8031')
    , ('\8040','\8047')
    , ('\8120','\8123')
    , ('\8136','\8139')
    , ('\8152','\8155')
    , ('\8168','\8172')
    , ('\8184','\8187')
    , ('\8450','\8450')
    , ('\8455','\8455')
    , ('\8459','\8461')
    , ('\8464','\8466')
    , ('\8469','\8469')
    , ('\8473','\8477')
    , ('\8484','\8484')
    , ('\8486','\8486')
    , ('\8488','\8488')
    , ('\8490','\8493')
    , ('\8496','\8499')
    , ('\8510','\8511')
    , ('\8517','\8517')
    , ('\8579','\8579')
    , ('\11264','\11310')
    , ('\11360','\11360')
    , ('\11362','\11364')
    , ('\11367','\11367')
    , ('\11369','\11369')
    , ('\11371','\11371')
    , ('\11381','\11381')
    , ('\11392','\11392')
    , ('\11394','\11394')
    , ('\11396','\11396')
    , ('\11398','\11398')
    , ('\11400','\11400')
    , ('\11402','\11402')
    , ('\11404','\11404')
    , ('\11406','\11406')
    , ('\11408','\11408')
    , ('\11410','\11410')
    , ('\11412','\11412')
    , ('\11414','\11414')
    , ('\11416','\11416')
    , ('\11418','\11418')
    , ('\11420','\11420')
    , ('\11422','\11422')
    , ('\11424','\11424')
    , ('\11426','\11426')
    , ('\11428','\11428')
    , ('\11430','\11430')
    , ('\11432','\11432')
    , ('\11434','\11434')
    , ('\11436','\11436')
    , ('\11438','\11438')
    , ('\11440','\11440')
    , ('\11442','\11442')
    , ('\11444','\11444')
    , ('\11446','\11446')
    , ('\11448','\11448')
    , ('\11450','\11450')
    , ('\11452','\11452')
    , ('\11454','\11454')
    , ('\11456','\11456')
    , ('\11458','\11458')
    , ('\11460','\11460')
    , ('\11462','\11462')
    , ('\11464','\11464')
    , ('\11466','\11466')
    , ('\11468','\11468')
    , ('\11470','\11470')
    , ('\11472','\11472')
    , ('\11474','\11474')
    , ('\11476','\11476')
    , ('\11478','\11478')
    , ('\11480','\11480')
    , ('\11482','\11482')
    , ('\11484','\11484')
    , ('\11486','\11486')
    , ('\11488','\11488')
    , ('\11490','\11490')
    , ('\65313','\65338')
    , ('\66560','\66599')
    , ('\119808','\119833')
    , ('\119860','\119885')
    , ('\119912','\119937')
    , ('\119964','\119964')
    , ('\119966','\119967')
    , ('\119970','\119970')
    , ('\119973','\119974')
    , ('\119977','\119980')
    , ('\119982','\119989')
    , ('\120016','\120041')
    , ('\120068','\120069')
    , ('\120071','\120074')
    , ('\120077','\120084')
    , ('\120086','\120092')
    , ('\120120','\120121')
    , ('\120123','\120126')
    , ('\120128','\120132')
    , ('\120134','\120134')
    , ('\120138','\120144')
    , ('\120172','\120197')
    , ('\120224','\120249')
    , ('\120276','\120301')
    , ('\120328','\120353')
    , ('\120380','\120405')
    , ('\120432','\120457')
    , ('\120488','\120512')
    , ('\120546','\120570')
    , ('\120604','\120628')
    , ('\120662','\120686')
    , ('\120720','\120744')
    , ('\120778','\120778')
    ]

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

isUnicodeM	:: Char -> Bool
isUnicodeM c
  = isInList c
    [ ('\768','\879')
    , ('\1155','\1158')
    , ('\1160','\1161')
    , ('\1425','\1469')
    , ('\1471','\1471')
    , ('\1473','\1474')
    , ('\1476','\1477')
    , ('\1479','\1479')
    , ('\1552','\1557')
    , ('\1611','\1630')
    , ('\1648','\1648')
    , ('\1750','\1756')
    , ('\1758','\1764')
    , ('\1767','\1768')
    , ('\1770','\1773')
    , ('\1809','\1809')
    , ('\1840','\1866')
    , ('\1958','\1968')
    , ('\2027','\2035')
    , ('\2305','\2307')
    , ('\2364','\2364')
    , ('\2366','\2381')
    , ('\2385','\2388')
    , ('\2402','\2403')
    , ('\2433','\2435')
    , ('\2492','\2492')
    , ('\2494','\2500')
    , ('\2503','\2504')
    , ('\2507','\2509')
    , ('\2519','\2519')
    , ('\2530','\2531')
    , ('\2561','\2563')
    , ('\2620','\2620')
    , ('\2622','\2626')
    , ('\2631','\2632')
    , ('\2635','\2637')
    , ('\2672','\2673')
    , ('\2689','\2691')
    , ('\2748','\2748')
    , ('\2750','\2757')
    , ('\2759','\2761')
    , ('\2763','\2765')
    , ('\2786','\2787')
    , ('\2817','\2819')
    , ('\2876','\2876')
    , ('\2878','\2883')
    , ('\2887','\2888')
    , ('\2891','\2893')
    , ('\2902','\2903')
    , ('\2946','\2946')
    , ('\3006','\3010')
    , ('\3014','\3016')
    , ('\3018','\3021')
    , ('\3031','\3031')
    , ('\3073','\3075')
    , ('\3134','\3140')
    , ('\3142','\3144')
    , ('\3146','\3149')
    , ('\3157','\3158')
    , ('\3202','\3203')
    , ('\3260','\3260')
    , ('\3262','\3268')
    , ('\3270','\3272')
    , ('\3274','\3277')
    , ('\3285','\3286')
    , ('\3298','\3299')
    , ('\3330','\3331')
    , ('\3390','\3395')
    , ('\3398','\3400')
    , ('\3402','\3405')
    , ('\3415','\3415')
    , ('\3458','\3459')
    , ('\3530','\3530')
    , ('\3535','\3540')
    , ('\3542','\3542')
    , ('\3544','\3551')
    , ('\3570','\3571')
    , ('\3633','\3633')
    , ('\3636','\3642')
    , ('\3655','\3662')
    , ('\3761','\3761')
    , ('\3764','\3769')
    , ('\3771','\3772')
    , ('\3784','\3789')
    , ('\3864','\3865')
    , ('\3893','\3893')
    , ('\3895','\3895')
    , ('\3897','\3897')
    , ('\3902','\3903')
    , ('\3953','\3972')
    , ('\3974','\3975')
    , ('\3984','\3991')
    , ('\3993','\4028')
    , ('\4038','\4038')
    , ('\4140','\4146')
    , ('\4150','\4153')
    , ('\4182','\4185')
    , ('\4959','\4959')
    , ('\5906','\5908')
    , ('\5938','\5940')
    , ('\5970','\5971')
    , ('\6002','\6003')
    , ('\6070','\6099')
    , ('\6109','\6109')
    , ('\6155','\6157')
    , ('\6313','\6313')
    , ('\6432','\6443')
    , ('\6448','\6459')
    , ('\6576','\6592')
    , ('\6600','\6601')
    , ('\6679','\6683')
    , ('\6912','\6916')
    , ('\6964','\6980')
    , ('\7019','\7027')
    , ('\7616','\7626')
    , ('\7678','\7679')
    , ('\8400','\8431')
    , ('\12330','\12335')
    , ('\12441','\12442')
    , ('\43010','\43010')
    , ('\43014','\43014')
    , ('\43019','\43019')
    , ('\43043','\43047')
    , ('\64286','\64286')
    , ('\65024','\65039')
    , ('\65056','\65059')
    , ('\68097','\68099')
    , ('\68101','\68102')
    , ('\68108','\68111')
    , ('\68152','\68154')
    , ('\68159','\68159')
    , ('\119141','\119145')
    , ('\119149','\119154')
    , ('\119163','\119170')
    , ('\119173','\119179')
    , ('\119210','\119213')
    , ('\119362','\119364')
    , ('\917760','\917999')
    ]

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

isUnicodeMc	:: Char -> Bool
isUnicodeMc c
  = isInList c
    [ ('\2307','\2307')
    , ('\2366','\2368')
    , ('\2377','\2380')
    , ('\2434','\2435')
    , ('\2494','\2496')
    , ('\2503','\2504')
    , ('\2507','\2508')
    , ('\2519','\2519')
    , ('\2563','\2563')
    , ('\2622','\2624')
    , ('\2691','\2691')
    , ('\2750','\2752')
    , ('\2761','\2761')
    , ('\2763','\2764')
    , ('\2818','\2819')
    , ('\2878','\2878')
    , ('\2880','\2880')
    , ('\2887','\2888')
    , ('\2891','\2892')
    , ('\2903','\2903')
    , ('\3006','\3007')
    , ('\3009','\3010')
    , ('\3014','\3016')
    , ('\3018','\3020')
    , ('\3031','\3031')
    , ('\3073','\3075')
    , ('\3137','\3140')
    , ('\3202','\3203')
    , ('\3262','\3262')
    , ('\3264','\3268')
    , ('\3271','\3272')
    , ('\3274','\3275')
    , ('\3285','\3286')
    , ('\3330','\3331')
    , ('\3390','\3392')
    , ('\3398','\3400')
    , ('\3402','\3404')
    , ('\3415','\3415')
    , ('\3458','\3459')
    , ('\3535','\3537')
    , ('\3544','\3551')
    , ('\3570','\3571')
    , ('\3902','\3903')
    , ('\3967','\3967')
    , ('\4140','\4140')
    , ('\4145','\4145')
    , ('\4152','\4152')
    , ('\4182','\4183')
    , ('\6070','\6070')
    , ('\6078','\6085')
    , ('\6087','\6088')
    , ('\6435','\6438')
    , ('\6441','\6443')
    , ('\6448','\6449')
    , ('\6451','\6456')
    , ('\6576','\6592')
    , ('\6600','\6601')
    , ('\6681','\6683')
    , ('\6916','\6916')
    , ('\6965','\6965')
    , ('\6971','\6971')
    , ('\6973','\6977')
    , ('\6979','\6980')
    , ('\43010','\43010')
    , ('\43043','\43044')
    , ('\43047','\43047')
    , ('\119141','\119142')
    , ('\119149','\119154')
    ]

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

isUnicodeMe	:: Char -> Bool
isUnicodeMe c
  = isInList c
    [ ('\1160','\1161')
    , ('\1758','\1758')
    , ('\8413','\8416')
    , ('\8418','\8420')
    ]

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

isUnicodeMn	:: Char -> Bool
isUnicodeMn c
  = isInList c
    [ ('\768','\879')
    , ('\1155','\1158')
    , ('\1425','\1469')
    , ('\1471','\1471')
    , ('\1473','\1474')
    , ('\1476','\1477')
    , ('\1479','\1479')
    , ('\1552','\1557')
    , ('\1611','\1630')
    , ('\1648','\1648')
    , ('\1750','\1756')
    , ('\1759','\1764')
    , ('\1767','\1768')
    , ('\1770','\1773')
    , ('\1809','\1809')
    , ('\1840','\1866')
    , ('\1958','\1968')
    , ('\2027','\2035')
    , ('\2305','\2306')
    , ('\2364','\2364')
    , ('\2369','\2376')
    , ('\2381','\2381')
    , ('\2385','\2388')
    , ('\2402','\2403')
    , ('\2433','\2433')
    , ('\2492','\2492')
    , ('\2497','\2500')
    , ('\2509','\2509')
    , ('\2530','\2531')
    , ('\2561','\2562')
    , ('\2620','\2620')
    , ('\2625','\2626')
    , ('\2631','\2632')
    , ('\2635','\2637')
    , ('\2672','\2673')
    , ('\2689','\2690')
    , ('\2748','\2748')
    , ('\2753','\2757')
    , ('\2759','\2760')
    , ('\2765','\2765')
    , ('\2786','\2787')
    , ('\2817','\2817')
    , ('\2876','\2876')
    , ('\2879','\2879')
    , ('\2881','\2883')
    , ('\2893','\2893')
    , ('\2902','\2902')
    , ('\2946','\2946')
    , ('\3008','\3008')
    , ('\3021','\3021')
    , ('\3134','\3136')
    , ('\3142','\3144')
    , ('\3146','\3149')
    , ('\3157','\3158')
    , ('\3260','\3260')
    , ('\3263','\3263')
    , ('\3270','\3270')
    , ('\3276','\3277')
    , ('\3298','\3299')
    , ('\3393','\3395')
    , ('\3405','\3405')
    , ('\3530','\3530')
    , ('\3538','\3540')
    , ('\3542','\3542')
    , ('\3633','\3633')
    , ('\3636','\3642')
    , ('\3655','\3662')
    , ('\3761','\3761')
    , ('\3764','\3769')
    , ('\3771','\3772')
    , ('\3784','\3789')
    , ('\3864','\3865')
    , ('\3893','\3893')
    , ('\3895','\3895')
    , ('\3897','\3897')
    , ('\3953','\3966')
    , ('\3968','\3972')
    , ('\3974','\3975')
    , ('\3984','\3991')
    , ('\3993','\4028')
    , ('\4038','\4038')
    , ('\4141','\4144')
    , ('\4146','\4146')
    , ('\4150','\4151')
    , ('\4153','\4153')
    , ('\4184','\4185')
    , ('\4959','\4959')
    , ('\5906','\5908')
    , ('\5938','\5940')
    , ('\5970','\5971')
    , ('\6002','\6003')
    , ('\6071','\6077')
    , ('\6086','\6086')
    , ('\6089','\6099')
    , ('\6109','\6109')
    , ('\6155','\6157')
    , ('\6313','\6313')
    , ('\6432','\6434')
    , ('\6439','\6440')
    , ('\6450','\6450')
    , ('\6457','\6459')
    , ('\6679','\6680')
    , ('\6912','\6915')
    , ('\6964','\6964')
    , ('\6966','\6970')
    , ('\6972','\6972')
    , ('\6978','\6978')
    , ('\7019','\7027')
    , ('\7616','\7626')
    , ('\7678','\7679')
    , ('\8400','\8412')
    , ('\8417','\8417')
    , ('\8421','\8431')
    , ('\12330','\12335')
    , ('\12441','\12442')
    , ('\43014','\43014')
    , ('\43019','\43019')
    , ('\43045','\43046')
    , ('\64286','\64286')
    , ('\65024','\65039')
    , ('\65056','\65059')
    , ('\68097','\68099')
    , ('\68101','\68102')
    , ('\68108','\68111')
    , ('\68152','\68154')
    , ('\68159','\68159')
    , ('\119143','\119145')
    , ('\119163','\119170')
    , ('\119173','\119179')
    , ('\119210','\119213')
    , ('\119362','\119364')
    , ('\917760','\917999')
    ]

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

isUnicodeN	:: Char -> Bool
isUnicodeN c
  = isInList c
    [ ('0','9')
    , ('\178','\179')
    , ('\185','\185')
    , ('\188','\190')
    , ('\1632','\1641')
    , ('\1776','\1785')
    , ('\1984','\1993')
    , ('\2406','\2415')
    , ('\2534','\2543')
    , ('\2548','\2553')
    , ('\2662','\2671')
    , ('\2790','\2799')
    , ('\2918','\2927')
    , ('\3046','\3058')
    , ('\3174','\3183')
    , ('\3302','\3311')
    , ('\3430','\3439')
    , ('\3664','\3673')
    , ('\3792','\3801')
    , ('\3872','\3891')
    , ('\4160','\4169')
    , ('\4969','\4988')
    , ('\5870','\5872')
    , ('\6112','\6121')
    , ('\6128','\6137')
    , ('\6160','\6169')
    , ('\6470','\6479')
    , ('\6608','\6617')
    , ('\6992','\7001')
    , ('\8304','\8304')
    , ('\8308','\8313')
    , ('\8320','\8329')
    , ('\8531','\8578')
    , ('\9312','\9371')
    , ('\9450','\9471')
    , ('\10102','\10131')
    , ('\11517','\11517')
    , ('\12295','\12295')
    , ('\12321','\12329')
    , ('\12344','\12346')
    , ('\12690','\12693')
    , ('\12832','\12841')
    , ('\12881','\12895')
    , ('\12928','\12937')
    , ('\12977','\12991')
    , ('\65296','\65305')
    , ('\65799','\65843')
    , ('\65856','\65912')
    , ('\65930','\65930')
    , ('\66336','\66339')
    , ('\66369','\66369')
    , ('\66378','\66378')
    , ('\66513','\66517')
    , ('\66720','\66729')
    , ('\67862','\67865')
    , ('\68160','\68167')
    , ('\74752','\74850')
    , ('\119648','\119665')
    , ('\120782','\120831')
    ]

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

isUnicodeNd	:: Char -> Bool
isUnicodeNd c
  = isInList c
    [ ('0','9')
    , ('\1632','\1641')
    , ('\1776','\1785')
    , ('\1984','\1993')
    , ('\2406','\2415')
    , ('\2534','\2543')
    , ('\2662','\2671')
    , ('\2790','\2799')
    , ('\2918','\2927')
    , ('\3046','\3055')
    , ('\3174','\3183')
    , ('\3302','\3311')
    , ('\3430','\3439')
    , ('\3664','\3673')
    , ('\3792','\3801')
    , ('\3872','\3881')
    , ('\4160','\4169')
    , ('\6112','\6121')
    , ('\6160','\6169')
    , ('\6470','\6479')
    , ('\6608','\6617')
    , ('\6992','\7001')
    , ('\65296','\65305')
    , ('\66720','\66729')
    , ('\120782','\120831')
    ]

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

isUnicodeNl	:: Char -> Bool
isUnicodeNl c
  = isInList c
    [ ('\5870','\5872')
    , ('\8544','\8578')
    , ('\12295','\12295')
    , ('\12321','\12329')
    , ('\12344','\12346')
    , ('\65856','\65908')
    , ('\66369','\66369')
    , ('\66378','\66378')
    , ('\66513','\66517')
    , ('\74752','\74850')
    ]

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

isUnicodeNo	:: Char -> Bool
isUnicodeNo c
  = isInList c
    [ ('\178','\179')
    , ('\185','\185')
    , ('\188','\190')
    , ('\2548','\2553')
    , ('\3056','\3058')
    , ('\3882','\3891')
    , ('\4969','\4988')
    , ('\6128','\6137')
    , ('\8304','\8304')
    , ('\8308','\8313')
    , ('\8320','\8329')
    , ('\8531','\8543')
    , ('\9312','\9371')
    , ('\9450','\9471')
    , ('\10102','\10131')
    , ('\11517','\11517')
    , ('\12690','\12693')
    , ('\12832','\12841')
    , ('\12881','\12895')
    , ('\12928','\12937')
    , ('\12977','\12991')
    , ('\65799','\65843')
    , ('\65909','\65912')
    , ('\65930','\65930')
    , ('\66336','\66339')
    , ('\67862','\67865')
    , ('\68160','\68167')
    , ('\119648','\119665')
    ]

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

isUnicodeP	:: Char -> Bool
isUnicodeP c
  = isInList c
    [ ('!','#')
    , ('%','*')
    , (',','/')
    , (':',';')
    , ('?','@')
    , ('[',']')
    , ('_','_')
    , ('{','{')
    , ('}','}')
    , ('\161','\161')
    , ('\171','\171')
    , ('\183','\183')
    , ('\187','\187')
    , ('\191','\191')
    , ('\894','\894')
    , ('\903','\903')
    , ('\1370','\1375')
    , ('\1417','\1418')
    , ('\1470','\1470')
    , ('\1472','\1472')
    , ('\1475','\1475')
    , ('\1478','\1478')
    , ('\1523','\1524')
    , ('\1548','\1549')
    , ('\1563','\1563')
    , ('\1566','\1567')
    , ('\1642','\1645')
    , ('\1748','\1748')
    , ('\1792','\1805')
    , ('\2039','\2041')
    , ('\2404','\2405')
    , ('\2416','\2416')
    , ('\3572','\3572')
    , ('\3663','\3663')
    , ('\3674','\3675')
    , ('\3844','\3858')
    , ('\3898','\3901')
    , ('\3973','\3973')
    , ('\4048','\4049')
    , ('\4170','\4175')
    , ('\4347','\4347')
    , ('\4961','\4968')
    , ('\5741','\5742')
    , ('\5787','\5788')
    , ('\5867','\5869')
    , ('\5941','\5942')
    , ('\6100','\6102')
    , ('\6104','\6106')
    , ('\6144','\6154')
    , ('\6468','\6469')
    , ('\6622','\6623')
    , ('\6686','\6687')
    , ('\7002','\7008')
    , ('\8208','\8231')
    , ('\8240','\8259')
    , ('\8261','\8273')
    , ('\8275','\8286')
    , ('\8317','\8318')
    , ('\8333','\8334')
    , ('\9001','\9002')
    , ('\10088','\10101')
    , ('\10181','\10182')
    , ('\10214','\10219')
    , ('\10627','\10648')
    , ('\10712','\10715')
    , ('\10748','\10749')
    , ('\11513','\11516')
    , ('\11518','\11519')
    , ('\11776','\11799')
    , ('\11804','\11805')
    , ('\12289','\12291')
    , ('\12296','\12305')
    , ('\12308','\12319')
    , ('\12336','\12336')
    , ('\12349','\12349')
    , ('\12448','\12448')
    , ('\12539','\12539')
    , ('\43124','\43127')
    , ('\64830','\64831')
    , ('\65040','\65049')
    , ('\65072','\65106')
    , ('\65108','\65121')
    , ('\65123','\65123')
    , ('\65128','\65128')
    , ('\65130','\65131')
    , ('\65281','\65283')
    , ('\65285','\65290')
    , ('\65292','\65295')
    , ('\65306','\65307')
    , ('\65311','\65312')
    , ('\65339','\65341')
    , ('\65343','\65343')
    , ('\65371','\65371')
    , ('\65373','\65373')
    , ('\65375','\65381')
    , ('\65792','\65793')
    , ('\66463','\66463')
    , ('\66512','\66512')
    , ('\67871','\67871')
    , ('\68176','\68184')
    , ('\74864','\74867')
    ]

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

isUnicodePc	:: Char -> Bool
isUnicodePc c
  = isInList c
    [ ('_','_')
    , ('\8255','\8256')
    , ('\8276','\8276')
    , ('\65075','\65076')
    , ('\65101','\65103')
    , ('\65343','\65343')
    ]

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

isUnicodePd	:: Char -> Bool
isUnicodePd c
  = isInList c
    [ ('-','-')
    , ('\1418','\1418')
    , ('\6150','\6150')
    , ('\8208','\8213')
    , ('\11799','\11799')
    , ('\12316','\12316')
    , ('\12336','\12336')
    , ('\12448','\12448')
    , ('\65073','\65074')
    , ('\65112','\65112')
    , ('\65123','\65123')
    , ('\65293','\65293')
    ]

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

isUnicodePe	:: Char -> Bool
isUnicodePe c
  = isInList c
    [ (')',')')
    , (']',']')
    , ('}','}')
    , ('\3899','\3899')
    , ('\3901','\3901')
    , ('\5788','\5788')
    , ('\8262','\8262')
    , ('\8318','\8318')
    , ('\8334','\8334')
    , ('\9002','\9002')
    , ('\10089','\10089')
    , ('\10091','\10091')
    , ('\10093','\10093')
    , ('\10095','\10095')
    , ('\10097','\10097')
    , ('\10099','\10099')
    , ('\10101','\10101')
    , ('\10182','\10182')
    , ('\10215','\10215')
    , ('\10217','\10217')
    , ('\10219','\10219')
    , ('\10628','\10628')
    , ('\10630','\10630')
    , ('\10632','\10632')
    , ('\10634','\10634')
    , ('\10636','\10636')
    , ('\10638','\10638')
    , ('\10640','\10640')
    , ('\10642','\10642')
    , ('\10644','\10644')
    , ('\10646','\10646')
    , ('\10648','\10648')
    , ('\10713','\10713')
    , ('\10715','\10715')
    , ('\10749','\10749')
    , ('\12297','\12297')
    , ('\12299','\12299')
    , ('\12301','\12301')
    , ('\12303','\12303')
    , ('\12305','\12305')
    , ('\12309','\12309')
    , ('\12311','\12311')
    , ('\12313','\12313')
    , ('\12315','\12315')
    , ('\12318','\12319')
    , ('\64831','\64831')
    , ('\65048','\65048')
    , ('\65078','\65078')
    , ('\65080','\65080')
    , ('\65082','\65082')
    , ('\65084','\65084')
    , ('\65086','\65086')
    , ('\65088','\65088')
    , ('\65090','\65090')
    , ('\65092','\65092')
    , ('\65096','\65096')
    , ('\65114','\65114')
    , ('\65116','\65116')
    , ('\65118','\65118')
    , ('\65289','\65289')
    , ('\65341','\65341')
    , ('\65373','\65373')
    , ('\65376','\65376')
    , ('\65379','\65379')
    ]

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

isUnicodePf	:: Char -> Bool
isUnicodePf c
  = isInList c
    [ ('\187','\187')
    , ('\8217','\8217')
    , ('\8221','\8221')
    , ('\8250','\8250')
    , ('\11779','\11779')
    , ('\11781','\11781')
    , ('\11786','\11786')
    , ('\11789','\11789')
    , ('\11805','\11805')
    ]

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

isUnicodePi	:: Char -> Bool
isUnicodePi c
  = isInList c
    [ ('\171','\171')
    , ('\8216','\8216')
    , ('\8219','\8220')
    , ('\8223','\8223')
    , ('\8249','\8249')
    , ('\11778','\11778')
    , ('\11780','\11780')
    , ('\11785','\11785')
    , ('\11788','\11788')
    , ('\11804','\11804')
    ]

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

isUnicodePo	:: Char -> Bool
isUnicodePo c
  = isInList c
    [ ('!','#')
    , ('%','\'')
    , ('*','*')
    , (',',',')
    , ('.','/')
    , (':',';')
    , ('?','@')
    , ('\\','\\')
    , ('\161','\161')
    , ('\183','\183')
    , ('\191','\191')
    , ('\894','\894')
    , ('\903','\903')
    , ('\1370','\1375')
    , ('\1417','\1417')
    , ('\1470','\1470')
    , ('\1472','\1472')
    , ('\1475','\1475')
    , ('\1478','\1478')
    , ('\1523','\1524')
    , ('\1548','\1549')
    , ('\1563','\1563')
    , ('\1566','\1567')
    , ('\1642','\1645')
    , ('\1748','\1748')
    , ('\1792','\1805')
    , ('\2039','\2041')
    , ('\2404','\2405')
    , ('\2416','\2416')
    , ('\3572','\3572')
    , ('\3663','\3663')
    , ('\3674','\3675')
    , ('\3844','\3858')
    , ('\3973','\3973')
    , ('\4048','\4049')
    , ('\4170','\4175')
    , ('\4347','\4347')
    , ('\4961','\4968')
    , ('\5741','\5742')
    , ('\5867','\5869')
    , ('\5941','\5942')
    , ('\6100','\6102')
    , ('\6104','\6106')
    , ('\6144','\6149')
    , ('\6151','\6154')
    , ('\6468','\6469')
    , ('\6622','\6623')
    , ('\6686','\6687')
    , ('\7002','\7008')
    , ('\8214','\8215')
    , ('\8224','\8231')
    , ('\8240','\8248')
    , ('\8251','\8254')
    , ('\8257','\8259')
    , ('\8263','\8273')
    , ('\8275','\8275')
    , ('\8277','\8286')
    , ('\11513','\11516')
    , ('\11518','\11519')
    , ('\11776','\11777')
    , ('\11782','\11784')
    , ('\11787','\11787')
    , ('\11790','\11798')
    , ('\12289','\12291')
    , ('\12349','\12349')
    , ('\12539','\12539')
    , ('\43124','\43127')
    , ('\65040','\65046')
    , ('\65049','\65049')
    , ('\65072','\65072')
    , ('\65093','\65094')
    , ('\65097','\65100')
    , ('\65104','\65106')
    , ('\65108','\65111')
    , ('\65119','\65121')
    , ('\65128','\65128')
    , ('\65130','\65131')
    , ('\65281','\65283')
    , ('\65285','\65287')
    , ('\65290','\65290')
    , ('\65292','\65292')
    , ('\65294','\65295')
    , ('\65306','\65307')
    , ('\65311','\65312')
    , ('\65340','\65340')
    , ('\65377','\65377')
    , ('\65380','\65381')
    , ('\65792','\65793')
    , ('\66463','\66463')
    , ('\66512','\66512')
    , ('\67871','\67871')
    , ('\68176','\68184')
    , ('\74864','\74867')
    ]

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

isUnicodePs	:: Char -> Bool
isUnicodePs c
  = isInList c
    [ ('(','(')
    , ('[','[')
    , ('{','{')
    , ('\3898','\3898')
    , ('\3900','\3900')
    , ('\5787','\5787')
    , ('\8218','\8218')
    , ('\8222','\8222')
    , ('\8261','\8261')
    , ('\8317','\8317')
    , ('\8333','\8333')
    , ('\9001','\9001')
    , ('\10088','\10088')
    , ('\10090','\10090')
    , ('\10092','\10092')
    , ('\10094','\10094')
    , ('\10096','\10096')
    , ('\10098','\10098')
    , ('\10100','\10100')
    , ('\10181','\10181')
    , ('\10214','\10214')
    , ('\10216','\10216')
    , ('\10218','\10218')
    , ('\10627','\10627')
    , ('\10629','\10629')
    , ('\10631','\10631')
    , ('\10633','\10633')
    , ('\10635','\10635')
    , ('\10637','\10637')
    , ('\10639','\10639')
    , ('\10641','\10641')
    , ('\10643','\10643')
    , ('\10645','\10645')
    , ('\10647','\10647')
    , ('\10712','\10712')
    , ('\10714','\10714')
    , ('\10748','\10748')
    , ('\12296','\12296')
    , ('\12298','\12298')
    , ('\12300','\12300')
    , ('\12302','\12302')
    , ('\12304','\12304')
    , ('\12308','\12308')
    , ('\12310','\12310')
    , ('\12312','\12312')
    , ('\12314','\12314')
    , ('\12317','\12317')
    , ('\64830','\64830')
    , ('\65047','\65047')
    , ('\65077','\65077')
    , ('\65079','\65079')
    , ('\65081','\65081')
    , ('\65083','\65083')
    , ('\65085','\65085')
    , ('\65087','\65087')
    , ('\65089','\65089')
    , ('\65091','\65091')
    , ('\65095','\65095')
    , ('\65113','\65113')
    , ('\65115','\65115')
    , ('\65117','\65117')
    , ('\65288','\65288')
    , ('\65339','\65339')
    , ('\65371','\65371')
    , ('\65375','\65375')
    , ('\65378','\65378')
    ]

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

isUnicodeS	:: Char -> Bool
isUnicodeS c
  = isInList c
    [ ('$','$')
    , ('+','+')
    , ('<','>')
    , ('^','^')
    , ('`','`')
    , ('|','|')
    , ('~','~')
    , ('\162','\169')
    , ('\172','\172')
    , ('\174','\177')
    , ('\180','\180')
    , ('\182','\182')
    , ('\184','\184')
    , ('\215','\215')
    , ('\247','\247')
    , ('\706','\709')
    , ('\722','\735')
    , ('\741','\749')
    , ('\751','\767')
    , ('\884','\885')
    , ('\900','\901')
    , ('\1014','\1014')
    , ('\1154','\1154')
    , ('\1547','\1547')
    , ('\1550','\1551')
    , ('\1769','\1769')
    , ('\1789','\1790')
    , ('\2038','\2038')
    , ('\2546','\2547')
    , ('\2554','\2554')
    , ('\2801','\2801')
    , ('\2928','\2928')
    , ('\3059','\3066')
    , ('\3313','\3314')
    , ('\3647','\3647')
    , ('\3841','\3843')
    , ('\3859','\3863')
    , ('\3866','\3871')
    , ('\3892','\3892')
    , ('\3894','\3894')
    , ('\3896','\3896')
    , ('\4030','\4037')
    , ('\4039','\4044')
    , ('\4047','\4047')
    , ('\4960','\4960')
    , ('\5008','\5017')
    , ('\6107','\6107')
    , ('\6464','\6464')
    , ('\6624','\6655')
    , ('\7009','\7018')
    , ('\7028','\7036')
    , ('\8125','\8125')
    , ('\8127','\8129')
    , ('\8141','\8143')
    , ('\8157','\8159')
    , ('\8173','\8175')
    , ('\8189','\8190')
    , ('\8260','\8260')
    , ('\8274','\8274')
    , ('\8314','\8316')
    , ('\8330','\8332')
    , ('\8352','\8373')
    , ('\8448','\8449')
    , ('\8451','\8454')
    , ('\8456','\8457')
    , ('\8468','\8468')
    , ('\8470','\8472')
    , ('\8478','\8483')
    , ('\8485','\8485')
    , ('\8487','\8487')
    , ('\8489','\8489')
    , ('\8494','\8494')
    , ('\8506','\8507')
    , ('\8512','\8516')
    , ('\8522','\8525')
    , ('\8592','\9000')
    , ('\9003','\9191')
    , ('\9216','\9254')
    , ('\9280','\9290')
    , ('\9372','\9449')
    , ('\9472','\9884')
    , ('\9888','\9906')
    , ('\9985','\9988')
    , ('\9990','\9993')
    , ('\9996','\10023')
    , ('\10025','\10059')
    , ('\10061','\10061')
    , ('\10063','\10066')
    , ('\10070','\10070')
    , ('\10072','\10078')
    , ('\10081','\10087')
    , ('\10132','\10132')
    , ('\10136','\10159')
    , ('\10161','\10174')
    , ('\10176','\10180')
    , ('\10183','\10186')
    , ('\10192','\10213')
    , ('\10224','\10626')
    , ('\10649','\10711')
    , ('\10716','\10747')
    , ('\10750','\11034')
    , ('\11040','\11043')
    , ('\11493','\11498')
    , ('\11904','\11929')
    , ('\11931','\12019')
    , ('\12032','\12245')
    , ('\12272','\12283')
    , ('\12292','\12292')
    , ('\12306','\12307')
    , ('\12320','\12320')
    , ('\12342','\12343')
    , ('\12350','\12351')
    , ('\12443','\12444')
    , ('\12688','\12689')
    , ('\12694','\12703')
    , ('\12736','\12751')
    , ('\12800','\12830')
    , ('\12842','\12867')
    , ('\12880','\12880')
    , ('\12896','\12927')
    , ('\12938','\12976')
    , ('\12992','\13054')
    , ('\13056','\13311')
    , ('\19904','\19967')
    , ('\42128','\42182')
    , ('\42752','\42774')
    , ('\42784','\42785')
    , ('\43048','\43051')
    , ('\64297','\64297')
    , ('\65020','\65021')
    , ('\65122','\65122')
    , ('\65124','\65126')
    , ('\65129','\65129')
    , ('\65284','\65284')
    , ('\65291','\65291')
    , ('\65308','\65310')
    , ('\65342','\65342')
    , ('\65344','\65344')
    , ('\65372','\65372')
    , ('\65374','\65374')
    , ('\65504','\65510')
    , ('\65512','\65518')
    , ('\65532','\65533')
    , ('\65794','\65794')
    , ('\65847','\65855')
    , ('\65913','\65929')
    , ('\118784','\119029')
    , ('\119040','\119078')
    , ('\119082','\119140')
    , ('\119146','\119148')
    , ('\119171','\119172')
    , ('\119180','\119209')
    , ('\119214','\119261')
    , ('\119296','\119361')
    , ('\119365','\119365')
    , ('\119552','\119638')
    , ('\120513','\120513')
    , ('\120539','\120539')
    , ('\120571','\120571')
    , ('\120597','\120597')
    , ('\120629','\120629')
    , ('\120655','\120655')
    , ('\120687','\120687')
    , ('\120713','\120713')
    , ('\120745','\120745')
    , ('\120771','\120771')
    ]

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

isUnicodeSc	:: Char -> Bool
isUnicodeSc c
  = isInList c
    [ ('$','$')
    , ('\162','\165')
    , ('\1547','\1547')
    , ('\2546','\2547')
    , ('\2801','\2801')
    , ('\3065','\3065')
    , ('\3647','\3647')
    , ('\6107','\6107')
    , ('\8352','\8373')
    , ('\65020','\65020')
    , ('\65129','\65129')
    , ('\65284','\65284')
    , ('\65504','\65505')
    , ('\65509','\65510')
    ]

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

isUnicodeSk	:: Char -> Bool
isUnicodeSk c
  = isInList c
    [ ('^','^')
    , ('`','`')
    , ('\168','\168')
    , ('\175','\175')
    , ('\180','\180')
    , ('\184','\184')
    , ('\706','\709')
    , ('\722','\735')
    , ('\741','\749')
    , ('\751','\767')
    , ('\884','\885')
    , ('\900','\901')
    , ('\8125','\8125')
    , ('\8127','\8129')
    , ('\8141','\8143')
    , ('\8157','\8159')
    , ('\8173','\8175')
    , ('\8189','\8190')
    , ('\12443','\12444')
    , ('\42752','\42774')
    , ('\42784','\42785')
    , ('\65342','\65342')
    , ('\65344','\65344')
    , ('\65507','\65507')
    ]

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

isUnicodeSm	:: Char -> Bool
isUnicodeSm c
  = isInList c
    [ ('+','+')
    , ('<','>')
    , ('|','|')
    , ('~','~')
    , ('\172','\172')
    , ('\177','\177')
    , ('\215','\215')
    , ('\247','\247')
    , ('\1014','\1014')
    , ('\8260','\8260')
    , ('\8274','\8274')
    , ('\8314','\8316')
    , ('\8330','\8332')
    , ('\8512','\8516')
    , ('\8523','\8523')
    , ('\8592','\8596')
    , ('\8602','\8603')
    , ('\8608','\8608')
    , ('\8611','\8611')
    , ('\8614','\8614')
    , ('\8622','\8622')
    , ('\8654','\8655')
    , ('\8658','\8658')
    , ('\8660','\8660')
    , ('\8692','\8959')
    , ('\8968','\8971')
    , ('\8992','\8993')
    , ('\9084','\9084')
    , ('\9115','\9139')
    , ('\9180','\9185')
    , ('\9655','\9655')
    , ('\9665','\9665')
    , ('\9720','\9727')
    , ('\9839','\9839')
    , ('\10176','\10180')
    , ('\10183','\10186')
    , ('\10192','\10213')
    , ('\10224','\10239')
    , ('\10496','\10626')
    , ('\10649','\10711')
    , ('\10716','\10747')
    , ('\10750','\11007')
    , ('\64297','\64297')
    , ('\65122','\65122')
    , ('\65124','\65126')
    , ('\65291','\65291')
    , ('\65308','\65310')
    , ('\65372','\65372')
    , ('\65374','\65374')
    , ('\65506','\65506')
    , ('\65513','\65516')
    , ('\120513','\120513')
    , ('\120539','\120539')
    , ('\120571','\120571')
    , ('\120597','\120597')
    , ('\120629','\120629')
    , ('\120655','\120655')
    , ('\120687','\120687')
    , ('\120713','\120713')
    , ('\120745','\120745')
    , ('\120771','\120771')
    ]

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

isUnicodeSo	:: Char -> Bool
isUnicodeSo c
  = isInList c
    [ ('\166','\167')
    , ('\169','\169')
    , ('\174','\174')
    , ('\176','\176')
    , ('\182','\182')
    , ('\1154','\1154')
    , ('\1550','\1551')
    , ('\1769','\1769')
    , ('\1789','\1790')
    , ('\2038','\2038')
    , ('\2554','\2554')
    , ('\2928','\2928')
    , ('\3059','\3064')
    , ('\3066','\3066')
    , ('\3313','\3314')
    , ('\3841','\3843')
    , ('\3859','\3863')
    , ('\3866','\3871')
    , ('\3892','\3892')
    , ('\3894','\3894')
    , ('\3896','\3896')
    , ('\4030','\4037')
    , ('\4039','\4044')
    , ('\4047','\4047')
    , ('\4960','\4960')
    , ('\5008','\5017')
    , ('\6464','\6464')
    , ('\6624','\6655')
    , ('\7009','\7018')
    , ('\7028','\7036')
    , ('\8448','\8449')
    , ('\8451','\8454')
    , ('\8456','\8457')
    , ('\8468','\8468')
    , ('\8470','\8472')
    , ('\8478','\8483')
    , ('\8485','\8485')
    , ('\8487','\8487')
    , ('\8489','\8489')
    , ('\8494','\8494')
    , ('\8506','\8507')
    , ('\8522','\8522')
    , ('\8524','\8525')
    , ('\8597','\8601')
    , ('\8604','\8607')
    , ('\8609','\8610')
    , ('\8612','\8613')
    , ('\8615','\8621')
    , ('\8623','\8653')
    , ('\8656','\8657')
    , ('\8659','\8659')
    , ('\8661','\8691')
    , ('\8960','\8967')
    , ('\8972','\8991')
    , ('\8994','\9000')
    , ('\9003','\9083')
    , ('\9085','\9114')
    , ('\9140','\9179')
    , ('\9186','\9191')
    , ('\9216','\9254')
    , ('\9280','\9290')
    , ('\9372','\9449')
    , ('\9472','\9654')
    , ('\9656','\9664')
    , ('\9666','\9719')
    , ('\9728','\9838')
    , ('\9840','\9884')
    , ('\9888','\9906')
    , ('\9985','\9988')
    , ('\9990','\9993')
    , ('\9996','\10023')
    , ('\10025','\10059')
    , ('\10061','\10061')
    , ('\10063','\10066')
    , ('\10070','\10070')
    , ('\10072','\10078')
    , ('\10081','\10087')
    , ('\10132','\10132')
    , ('\10136','\10159')
    , ('\10161','\10174')
    , ('\10240','\10495')
    , ('\11008','\11034')
    , ('\11040','\11043')
    , ('\11493','\11498')
    , ('\11904','\11929')
    , ('\11931','\12019')
    , ('\12032','\12245')
    , ('\12272','\12283')
    , ('\12292','\12292')
    , ('\12306','\12307')
    , ('\12320','\12320')
    , ('\12342','\12343')
    , ('\12350','\12351')
    , ('\12688','\12689')
    , ('\12694','\12703')
    , ('\12736','\12751')
    , ('\12800','\12830')
    , ('\12842','\12867')
    , ('\12880','\12880')
    , ('\12896','\12927')
    , ('\12938','\12976')
    , ('\12992','\13054')
    , ('\13056','\13311')
    , ('\19904','\19967')
    , ('\42128','\42182')
    , ('\43048','\43051')
    , ('\65021','\65021')
    , ('\65508','\65508')
    , ('\65512','\65512')
    , ('\65517','\65518')
    , ('\65532','\65533')
    , ('\65794','\65794')
    , ('\65847','\65855')
    , ('\65913','\65929')
    , ('\118784','\119029')
    , ('\119040','\119078')
    , ('\119082','\119140')
    , ('\119146','\119148')
    , ('\119171','\119172')
    , ('\119180','\119209')
    , ('\119214','\119261')
    , ('\119296','\119361')
    , ('\119365','\119365')
    , ('\119552','\119638')
    ]

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

isUnicodeZ	:: Char -> Bool
isUnicodeZ c
  = isInList c
    [ (' ',' ')
    , ('\160','\160')
    , ('\5760','\5760')
    , ('\6158','\6158')
    , ('\8192','\8202')
    , ('\8232','\8233')
    , ('\8239','\8239')
    , ('\8287','\8287')
    , ('\12288','\12288')
    ]

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

isUnicodeZl	:: Char -> Bool
isUnicodeZl c
  = isInList c
    [ ('\8232','\8232')
    ]

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

isUnicodeZp	:: Char -> Bool
isUnicodeZp c
  = isInList c
    [ ('\8233','\8233')
    ]

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

isUnicodeZs	:: Char -> Bool
isUnicodeZs c
  = isInList c
    [ (' ',' ')
    , ('\160','\160')
    , ('\5760','\5760')
    , ('\6158','\6158')
    , ('\8192','\8202')
    , ('\8239','\8239')
    , ('\8287','\8287')
    , ('\12288','\12288')
    ]

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