1-- ------------------------------------------------------------
2
3{- |
4   Module     : Data.Char.Properties.UnicodeCharProps
5   Copyright  : Copyright (C) 2010 - Uwe Schmidt
6
7   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
8   Stability  : stable
9   Portability: portable
10
11   Unicode character properties
12
13   don't edit this module
14   it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt'
15
16-}
17
18-- ------------------------------------------------------------
19
20module Data.Char.Properties.UnicodeCharProps
21  ( isUnicodeC
22  , isUnicodeCc
23  , isUnicodeCf
24  , isUnicodeCo
25  , isUnicodeCs
26  , isUnicodeL
27  , isUnicodeLl
28  , isUnicodeLm
29  , isUnicodeLo
30  , isUnicodeLt
31  , isUnicodeLu
32  , isUnicodeM
33  , isUnicodeMc
34  , isUnicodeMe
35  , isUnicodeMn
36  , isUnicodeN
37  , isUnicodeNd
38  , isUnicodeNl
39  , isUnicodeNo
40  , isUnicodeP
41  , isUnicodePc
42  , isUnicodePd
43  , isUnicodePe
44  , isUnicodePf
45  , isUnicodePi
46  , isUnicodePo
47  , isUnicodePs
48  , isUnicodeS
49  , isUnicodeSc
50  , isUnicodeSk
51  , isUnicodeSm
52  , isUnicodeSo
53  , isUnicodeZ
54  , isUnicodeZl
55  , isUnicodeZp
56  , isUnicodeZs
57  , charPropUnicodeC
58  , charPropUnicodeCc
59  , charPropUnicodeCf
60  , charPropUnicodeCo
61  , charPropUnicodeCs
62  , charPropUnicodeL
63  , charPropUnicodeLl
64  , charPropUnicodeLm
65  , charPropUnicodeLo
66  , charPropUnicodeLt
67  , charPropUnicodeLu
68  , charPropUnicodeM
69  , charPropUnicodeMc
70  , charPropUnicodeMe
71  , charPropUnicodeMn
72  , charPropUnicodeN
73  , charPropUnicodeNd
74  , charPropUnicodeNl
75  , charPropUnicodeNo
76  , charPropUnicodeP
77  , charPropUnicodePc
78  , charPropUnicodePd
79  , charPropUnicodePe
80  , charPropUnicodePf
81  , charPropUnicodePi
82  , charPropUnicodePo
83  , charPropUnicodePs
84  , charPropUnicodeS
85  , charPropUnicodeSc
86  , charPropUnicodeSk
87  , charPropUnicodeSm
88  , charPropUnicodeSo
89  , charPropUnicodeZ
90  , charPropUnicodeZl
91  , charPropUnicodeZp
92  , charPropUnicodeZs
93  )
94where
95
96import Data.Set.CharSet
97
98-- ------------------------------------------------------------
99
100isUnicodeC :: Char -> Bool
101isUnicodeC c
102  = elemCS c charPropUnicodeC
103
104charPropUnicodeC :: CharSet
105charPropUnicodeC
106  = [ ('\NUL','\US')
107    , ('\DEL','\159')
108    , ('\173','\173')
109    , ('\1536','\1541')
110    , ('\1564','\1564')
111    , ('\1757','\1757')
112    , ('\1807','\1807')
113    , ('\2274','\2274')
114    , ('\6158','\6158')
115    , ('\8203','\8207')
116    , ('\8234','\8238')
117    , ('\8288','\8292')
118    , ('\8294','\8303')
119    , ('\55296','\55296')
120    , ('\56191','\56192')
121    , ('\56319','\56320')
122    , ('\57343','\57344')
123    , ('\63743','\63743')
124    , ('\65279','\65279')
125    , ('\65529','\65531')
126    , ('\69821','\69821')
127    , ('\69837','\69837')
128    , ('\78896','\78904')
129    , ('\113824','\113827')
130    , ('\119155','\119162')
131    , ('\917505','\917505')
132    , ('\917536','\917631')
133    , ('\983040','\983040')
134    , ('\1048573','\1048573')
135    , ('\1048576','\1048576')
136    , ('\1114109','\1114109')
137    ]
138
139-- ------------------------------------------------------------
140
141isUnicodeCc :: Char -> Bool
142isUnicodeCc c
143  = elemCS c charPropUnicodeCc
144
145charPropUnicodeCc :: CharSet
146charPropUnicodeCc
147  = [ ('\NUL','\US')
148    , ('\DEL','\159')
149    ]
150
151-- ------------------------------------------------------------
152
153isUnicodeCf :: Char -> Bool
154isUnicodeCf c
155  = elemCS c charPropUnicodeCf
156
157charPropUnicodeCf :: CharSet
158charPropUnicodeCf
159  = [ ('\173','\173')
160    , ('\1536','\1541')
161    , ('\1564','\1564')
162    , ('\1757','\1757')
163    , ('\1807','\1807')
164    , ('\2274','\2274')
165    , ('\6158','\6158')
166    , ('\8203','\8207')
167    , ('\8234','\8238')
168    , ('\8288','\8292')
169    , ('\8294','\8303')
170    , ('\65279','\65279')
171    , ('\65529','\65531')
172    , ('\69821','\69821')
173    , ('\69837','\69837')
174    , ('\78896','\78904')
175    , ('\113824','\113827')
176    , ('\119155','\119162')
177    , ('\917505','\917505')
178    , ('\917536','\917631')
179    ]
180
181-- ------------------------------------------------------------
182
183isUnicodeCo :: Char -> Bool
184isUnicodeCo c
185  = elemCS c charPropUnicodeCo
186
187charPropUnicodeCo :: CharSet
188charPropUnicodeCo
189  = [ ('\57344','\57344')
190    , ('\63743','\63743')
191    , ('\983040','\983040')
192    , ('\1048573','\1048573')
193    , ('\1048576','\1048576')
194    , ('\1114109','\1114109')
195    ]
196
197-- ------------------------------------------------------------
198
199isUnicodeCs :: Char -> Bool
200isUnicodeCs c
201  = elemCS c charPropUnicodeCs
202
203charPropUnicodeCs :: CharSet
204charPropUnicodeCs
205  = [ ('\55296','\55296')
206    , ('\56191','\56192')
207    , ('\56319','\56320')
208    , ('\57343','\57343')
209    ]
210
211-- ------------------------------------------------------------
212
213isUnicodeL :: Char -> Bool
214isUnicodeL c
215  = elemCS c charPropUnicodeL
216
217charPropUnicodeL :: CharSet
218charPropUnicodeL
219  = [ ('A','Z')
220    , ('a','z')
221    , ('\170','\170')
222    , ('\181','\181')
223    , ('\186','\186')
224    , ('\192','\214')
225    , ('\216','\246')
226    , ('\248','\705')
227    , ('\710','\721')
228    , ('\736','\740')
229    , ('\748','\748')
230    , ('\750','\750')
231    , ('\880','\884')
232    , ('\886','\887')
233    , ('\890','\893')
234    , ('\895','\895')
235    , ('\902','\902')
236    , ('\904','\906')
237    , ('\908','\908')
238    , ('\910','\929')
239    , ('\931','\1013')
240    , ('\1015','\1153')
241    , ('\1162','\1327')
242    , ('\1329','\1366')
243    , ('\1369','\1369')
244    , ('\1376','\1416')
245    , ('\1488','\1514')
246    , ('\1519','\1522')
247    , ('\1568','\1610')
248    , ('\1646','\1647')
249    , ('\1649','\1747')
250    , ('\1749','\1749')
251    , ('\1765','\1766')
252    , ('\1774','\1775')
253    , ('\1786','\1788')
254    , ('\1791','\1791')
255    , ('\1808','\1808')
256    , ('\1810','\1839')
257    , ('\1869','\1957')
258    , ('\1969','\1969')
259    , ('\1994','\2026')
260    , ('\2036','\2037')
261    , ('\2042','\2042')
262    , ('\2048','\2069')
263    , ('\2074','\2074')
264    , ('\2084','\2084')
265    , ('\2088','\2088')
266    , ('\2112','\2136')
267    , ('\2144','\2154')
268    , ('\2208','\2228')
269    , ('\2230','\2237')
270    , ('\2308','\2361')
271    , ('\2365','\2365')
272    , ('\2384','\2384')
273    , ('\2392','\2401')
274    , ('\2417','\2432')
275    , ('\2437','\2444')
276    , ('\2447','\2448')
277    , ('\2451','\2472')
278    , ('\2474','\2480')
279    , ('\2482','\2482')
280    , ('\2486','\2489')
281    , ('\2493','\2493')
282    , ('\2510','\2510')
283    , ('\2524','\2525')
284    , ('\2527','\2529')
285    , ('\2544','\2545')
286    , ('\2556','\2556')
287    , ('\2565','\2570')
288    , ('\2575','\2576')
289    , ('\2579','\2600')
290    , ('\2602','\2608')
291    , ('\2610','\2611')
292    , ('\2613','\2614')
293    , ('\2616','\2617')
294    , ('\2649','\2652')
295    , ('\2654','\2654')
296    , ('\2674','\2676')
297    , ('\2693','\2701')
298    , ('\2703','\2705')
299    , ('\2707','\2728')
300    , ('\2730','\2736')
301    , ('\2738','\2739')
302    , ('\2741','\2745')
303    , ('\2749','\2749')
304    , ('\2768','\2768')
305    , ('\2784','\2785')
306    , ('\2809','\2809')
307    , ('\2821','\2828')
308    , ('\2831','\2832')
309    , ('\2835','\2856')
310    , ('\2858','\2864')
311    , ('\2866','\2867')
312    , ('\2869','\2873')
313    , ('\2877','\2877')
314    , ('\2908','\2909')
315    , ('\2911','\2913')
316    , ('\2929','\2929')
317    , ('\2947','\2947')
318    , ('\2949','\2954')
319    , ('\2958','\2960')
320    , ('\2962','\2965')
321    , ('\2969','\2970')
322    , ('\2972','\2972')
323    , ('\2974','\2975')
324    , ('\2979','\2980')
325    , ('\2984','\2986')
326    , ('\2990','\3001')
327    , ('\3024','\3024')
328    , ('\3077','\3084')
329    , ('\3086','\3088')
330    , ('\3090','\3112')
331    , ('\3114','\3129')
332    , ('\3133','\3133')
333    , ('\3160','\3162')
334    , ('\3168','\3169')
335    , ('\3200','\3200')
336    , ('\3205','\3212')
337    , ('\3214','\3216')
338    , ('\3218','\3240')
339    , ('\3242','\3251')
340    , ('\3253','\3257')
341    , ('\3261','\3261')
342    , ('\3294','\3294')
343    , ('\3296','\3297')
344    , ('\3313','\3314')
345    , ('\3333','\3340')
346    , ('\3342','\3344')
347    , ('\3346','\3386')
348    , ('\3389','\3389')
349    , ('\3406','\3406')
350    , ('\3412','\3414')
351    , ('\3423','\3425')
352    , ('\3450','\3455')
353    , ('\3461','\3478')
354    , ('\3482','\3505')
355    , ('\3507','\3515')
356    , ('\3517','\3517')
357    , ('\3520','\3526')
358    , ('\3585','\3632')
359    , ('\3634','\3635')
360    , ('\3648','\3654')
361    , ('\3713','\3714')
362    , ('\3716','\3716')
363    , ('\3718','\3722')
364    , ('\3724','\3747')
365    , ('\3749','\3749')
366    , ('\3751','\3760')
367    , ('\3762','\3763')
368    , ('\3773','\3773')
369    , ('\3776','\3780')
370    , ('\3782','\3782')
371    , ('\3804','\3807')
372    , ('\3840','\3840')
373    , ('\3904','\3911')
374    , ('\3913','\3948')
375    , ('\3976','\3980')
376    , ('\4096','\4138')
377    , ('\4159','\4159')
378    , ('\4176','\4181')
379    , ('\4186','\4189')
380    , ('\4193','\4193')
381    , ('\4197','\4198')
382    , ('\4206','\4208')
383    , ('\4213','\4225')
384    , ('\4238','\4238')
385    , ('\4256','\4293')
386    , ('\4295','\4295')
387    , ('\4301','\4301')
388    , ('\4304','\4346')
389    , ('\4348','\4680')
390    , ('\4682','\4685')
391    , ('\4688','\4694')
392    , ('\4696','\4696')
393    , ('\4698','\4701')
394    , ('\4704','\4744')
395    , ('\4746','\4749')
396    , ('\4752','\4784')
397    , ('\4786','\4789')
398    , ('\4792','\4798')
399    , ('\4800','\4800')
400    , ('\4802','\4805')
401    , ('\4808','\4822')
402    , ('\4824','\4880')
403    , ('\4882','\4885')
404    , ('\4888','\4954')
405    , ('\4992','\5007')
406    , ('\5024','\5109')
407    , ('\5112','\5117')
408    , ('\5121','\5740')
409    , ('\5743','\5759')
410    , ('\5761','\5786')
411    , ('\5792','\5866')
412    , ('\5873','\5880')
413    , ('\5888','\5900')
414    , ('\5902','\5905')
415    , ('\5920','\5937')
416    , ('\5952','\5969')
417    , ('\5984','\5996')
418    , ('\5998','\6000')
419    , ('\6016','\6067')
420    , ('\6103','\6103')
421    , ('\6108','\6108')
422    , ('\6176','\6264')
423    , ('\6272','\6276')
424    , ('\6279','\6312')
425    , ('\6314','\6314')
426    , ('\6320','\6389')
427    , ('\6400','\6430')
428    , ('\6480','\6509')
429    , ('\6512','\6516')
430    , ('\6528','\6571')
431    , ('\6576','\6601')
432    , ('\6656','\6678')
433    , ('\6688','\6740')
434    , ('\6823','\6823')
435    , ('\6917','\6963')
436    , ('\6981','\6987')
437    , ('\7043','\7072')
438    , ('\7086','\7087')
439    , ('\7098','\7141')
440    , ('\7168','\7203')
441    , ('\7245','\7247')
442    , ('\7258','\7293')
443    , ('\7296','\7304')
444    , ('\7312','\7354')
445    , ('\7357','\7359')
446    , ('\7401','\7404')
447    , ('\7406','\7411')
448    , ('\7413','\7414')
449    , ('\7418','\7418')
450    , ('\7424','\7615')
451    , ('\7680','\7957')
452    , ('\7960','\7965')
453    , ('\7968','\8005')
454    , ('\8008','\8013')
455    , ('\8016','\8023')
456    , ('\8025','\8025')
457    , ('\8027','\8027')
458    , ('\8029','\8029')
459    , ('\8031','\8061')
460    , ('\8064','\8116')
461    , ('\8118','\8124')
462    , ('\8126','\8126')
463    , ('\8130','\8132')
464    , ('\8134','\8140')
465    , ('\8144','\8147')
466    , ('\8150','\8155')
467    , ('\8160','\8172')
468    , ('\8178','\8180')
469    , ('\8182','\8188')
470    , ('\8305','\8305')
471    , ('\8319','\8319')
472    , ('\8336','\8348')
473    , ('\8450','\8450')
474    , ('\8455','\8455')
475    , ('\8458','\8467')
476    , ('\8469','\8469')
477    , ('\8473','\8477')
478    , ('\8484','\8484')
479    , ('\8486','\8486')
480    , ('\8488','\8488')
481    , ('\8490','\8493')
482    , ('\8495','\8505')
483    , ('\8508','\8511')
484    , ('\8517','\8521')
485    , ('\8526','\8526')
486    , ('\8579','\8580')
487    , ('\11264','\11310')
488    , ('\11312','\11358')
489    , ('\11360','\11492')
490    , ('\11499','\11502')
491    , ('\11506','\11507')
492    , ('\11520','\11557')
493    , ('\11559','\11559')
494    , ('\11565','\11565')
495    , ('\11568','\11623')
496    , ('\11631','\11631')
497    , ('\11648','\11670')
498    , ('\11680','\11686')
499    , ('\11688','\11694')
500    , ('\11696','\11702')
501    , ('\11704','\11710')
502    , ('\11712','\11718')
503    , ('\11720','\11726')
504    , ('\11728','\11734')
505    , ('\11736','\11742')
506    , ('\11823','\11823')
507    , ('\12293','\12294')
508    , ('\12337','\12341')
509    , ('\12347','\12348')
510    , ('\12353','\12438')
511    , ('\12445','\12447')
512    , ('\12449','\12538')
513    , ('\12540','\12543')
514    , ('\12549','\12591')
515    , ('\12593','\12686')
516    , ('\12704','\12730')
517    , ('\12784','\12799')
518    , ('\13312','\13312')
519    , ('\19893','\19893')
520    , ('\19968','\19968')
521    , ('\40943','\40943')
522    , ('\40960','\42124')
523    , ('\42192','\42237')
524    , ('\42240','\42508')
525    , ('\42512','\42527')
526    , ('\42538','\42539')
527    , ('\42560','\42606')
528    , ('\42623','\42653')
529    , ('\42656','\42725')
530    , ('\42775','\42783')
531    , ('\42786','\42888')
532    , ('\42891','\42943')
533    , ('\42946','\42950')
534    , ('\42999','\43009')
535    , ('\43011','\43013')
536    , ('\43015','\43018')
537    , ('\43020','\43042')
538    , ('\43072','\43123')
539    , ('\43138','\43187')
540    , ('\43250','\43255')
541    , ('\43259','\43259')
542    , ('\43261','\43262')
543    , ('\43274','\43301')
544    , ('\43312','\43334')
545    , ('\43360','\43388')
546    , ('\43396','\43442')
547    , ('\43471','\43471')
548    , ('\43488','\43492')
549    , ('\43494','\43503')
550    , ('\43514','\43518')
551    , ('\43520','\43560')
552    , ('\43584','\43586')
553    , ('\43588','\43595')
554    , ('\43616','\43638')
555    , ('\43642','\43642')
556    , ('\43646','\43695')
557    , ('\43697','\43697')
558    , ('\43701','\43702')
559    , ('\43705','\43709')
560    , ('\43712','\43712')
561    , ('\43714','\43714')
562    , ('\43739','\43741')
563    , ('\43744','\43754')
564    , ('\43762','\43764')
565    , ('\43777','\43782')
566    , ('\43785','\43790')
567    , ('\43793','\43798')
568    , ('\43808','\43814')
569    , ('\43816','\43822')
570    , ('\43824','\43866')
571    , ('\43868','\43879')
572    , ('\43888','\44002')
573    , ('\44032','\44032')
574    , ('\55203','\55203')
575    , ('\55216','\55238')
576    , ('\55243','\55291')
577    , ('\63744','\64109')
578    , ('\64112','\64217')
579    , ('\64256','\64262')
580    , ('\64275','\64279')
581    , ('\64285','\64285')
582    , ('\64287','\64296')
583    , ('\64298','\64310')
584    , ('\64312','\64316')
585    , ('\64318','\64318')
586    , ('\64320','\64321')
587    , ('\64323','\64324')
588    , ('\64326','\64433')
589    , ('\64467','\64829')
590    , ('\64848','\64911')
591    , ('\64914','\64967')
592    , ('\65008','\65019')
593    , ('\65136','\65140')
594    , ('\65142','\65276')
595    , ('\65313','\65338')
596    , ('\65345','\65370')
597    , ('\65382','\65470')
598    , ('\65474','\65479')
599    , ('\65482','\65487')
600    , ('\65490','\65495')
601    , ('\65498','\65500')
602    , ('\65536','\65547')
603    , ('\65549','\65574')
604    , ('\65576','\65594')
605    , ('\65596','\65597')
606    , ('\65599','\65613')
607    , ('\65616','\65629')
608    , ('\65664','\65786')
609    , ('\66176','\66204')
610    , ('\66208','\66256')
611    , ('\66304','\66335')
612    , ('\66349','\66368')
613    , ('\66370','\66377')
614    , ('\66384','\66421')
615    , ('\66432','\66461')
616    , ('\66464','\66499')
617    , ('\66504','\66511')
618    , ('\66560','\66717')
619    , ('\66736','\66771')
620    , ('\66776','\66811')
621    , ('\66816','\66855')
622    , ('\66864','\66915')
623    , ('\67072','\67382')
624    , ('\67392','\67413')
625    , ('\67424','\67431')
626    , ('\67584','\67589')
627    , ('\67592','\67592')
628    , ('\67594','\67637')
629    , ('\67639','\67640')
630    , ('\67644','\67644')
631    , ('\67647','\67669')
632    , ('\67680','\67702')
633    , ('\67712','\67742')
634    , ('\67808','\67826')
635    , ('\67828','\67829')
636    , ('\67840','\67861')
637    , ('\67872','\67897')
638    , ('\67968','\68023')
639    , ('\68030','\68031')
640    , ('\68096','\68096')
641    , ('\68112','\68115')
642    , ('\68117','\68119')
643    , ('\68121','\68149')
644    , ('\68192','\68220')
645    , ('\68224','\68252')
646    , ('\68288','\68295')
647    , ('\68297','\68324')
648    , ('\68352','\68405')
649    , ('\68416','\68437')
650    , ('\68448','\68466')
651    , ('\68480','\68497')
652    , ('\68608','\68680')
653    , ('\68736','\68786')
654    , ('\68800','\68850')
655    , ('\68864','\68899')
656    , ('\69376','\69404')
657    , ('\69415','\69415')
658    , ('\69424','\69445')
659    , ('\69600','\69622')
660    , ('\69635','\69687')
661    , ('\69763','\69807')
662    , ('\69840','\69864')
663    , ('\69891','\69926')
664    , ('\69956','\69956')
665    , ('\69968','\70002')
666    , ('\70006','\70006')
667    , ('\70019','\70066')
668    , ('\70081','\70084')
669    , ('\70106','\70106')
670    , ('\70108','\70108')
671    , ('\70144','\70161')
672    , ('\70163','\70187')
673    , ('\70272','\70278')
674    , ('\70280','\70280')
675    , ('\70282','\70285')
676    , ('\70287','\70301')
677    , ('\70303','\70312')
678    , ('\70320','\70366')
679    , ('\70405','\70412')
680    , ('\70415','\70416')
681    , ('\70419','\70440')
682    , ('\70442','\70448')
683    , ('\70450','\70451')
684    , ('\70453','\70457')
685    , ('\70461','\70461')
686    , ('\70480','\70480')
687    , ('\70493','\70497')
688    , ('\70656','\70708')
689    , ('\70727','\70730')
690    , ('\70751','\70751')
691    , ('\70784','\70831')
692    , ('\70852','\70853')
693    , ('\70855','\70855')
694    , ('\71040','\71086')
695    , ('\71128','\71131')
696    , ('\71168','\71215')
697    , ('\71236','\71236')
698    , ('\71296','\71338')
699    , ('\71352','\71352')
700    , ('\71424','\71450')
701    , ('\71680','\71723')
702    , ('\71840','\71903')
703    , ('\71935','\71935')
704    , ('\72096','\72103')
705    , ('\72106','\72144')
706    , ('\72161','\72161')
707    , ('\72163','\72163')
708    , ('\72192','\72192')
709    , ('\72203','\72242')
710    , ('\72250','\72250')
711    , ('\72272','\72272')
712    , ('\72284','\72329')
713    , ('\72349','\72349')
714    , ('\72384','\72440')
715    , ('\72704','\72712')
716    , ('\72714','\72750')
717    , ('\72768','\72768')
718    , ('\72818','\72847')
719    , ('\72960','\72966')
720    , ('\72968','\72969')
721    , ('\72971','\73008')
722    , ('\73030','\73030')
723    , ('\73056','\73061')
724    , ('\73063','\73064')
725    , ('\73066','\73097')
726    , ('\73112','\73112')
727    , ('\73440','\73458')
728    , ('\73728','\74649')
729    , ('\74880','\75075')
730    , ('\77824','\78894')
731    , ('\82944','\83526')
732    , ('\92160','\92728')
733    , ('\92736','\92766')
734    , ('\92880','\92909')
735    , ('\92928','\92975')
736    , ('\92992','\92995')
737    , ('\93027','\93047')
738    , ('\93053','\93071')
739    , ('\93760','\93823')
740    , ('\93952','\94026')
741    , ('\94032','\94032')
742    , ('\94099','\94111')
743    , ('\94176','\94177')
744    , ('\94179','\94179')
745    , ('\94208','\94208')
746    , ('\100343','\100343')
747    , ('\100352','\101106')
748    , ('\110592','\110878')
749    , ('\110928','\110930')
750    , ('\110948','\110951')
751    , ('\110960','\111355')
752    , ('\113664','\113770')
753    , ('\113776','\113788')
754    , ('\113792','\113800')
755    , ('\113808','\113817')
756    , ('\119808','\119892')
757    , ('\119894','\119964')
758    , ('\119966','\119967')
759    , ('\119970','\119970')
760    , ('\119973','\119974')
761    , ('\119977','\119980')
762    , ('\119982','\119993')
763    , ('\119995','\119995')
764    , ('\119997','\120003')
765    , ('\120005','\120069')
766    , ('\120071','\120074')
767    , ('\120077','\120084')
768    , ('\120086','\120092')
769    , ('\120094','\120121')
770    , ('\120123','\120126')
771    , ('\120128','\120132')
772    , ('\120134','\120134')
773    , ('\120138','\120144')
774    , ('\120146','\120485')
775    , ('\120488','\120512')
776    , ('\120514','\120538')
777    , ('\120540','\120570')
778    , ('\120572','\120596')
779    , ('\120598','\120628')
780    , ('\120630','\120654')
781    , ('\120656','\120686')
782    , ('\120688','\120712')
783    , ('\120714','\120744')
784    , ('\120746','\120770')
785    , ('\120772','\120779')
786    , ('\123136','\123180')
787    , ('\123191','\123197')
788    , ('\123214','\123214')
789    , ('\123584','\123627')
790    , ('\124928','\125124')
791    , ('\125184','\125251')
792    , ('\125259','\125259')
793    , ('\126464','\126467')
794    , ('\126469','\126495')
795    , ('\126497','\126498')
796    , ('\126500','\126500')
797    , ('\126503','\126503')
798    , ('\126505','\126514')
799    , ('\126516','\126519')
800    , ('\126521','\126521')
801    , ('\126523','\126523')
802    , ('\126530','\126530')
803    , ('\126535','\126535')
804    , ('\126537','\126537')
805    , ('\126539','\126539')
806    , ('\126541','\126543')
807    , ('\126545','\126546')
808    , ('\126548','\126548')
809    , ('\126551','\126551')
810    , ('\126553','\126553')
811    , ('\126555','\126555')
812    , ('\126557','\126557')
813    , ('\126559','\126559')
814    , ('\126561','\126562')
815    , ('\126564','\126564')
816    , ('\126567','\126570')
817    , ('\126572','\126578')
818    , ('\126580','\126583')
819    , ('\126585','\126588')
820    , ('\126590','\126590')
821    , ('\126592','\126601')
822    , ('\126603','\126619')
823    , ('\126625','\126627')
824    , ('\126629','\126633')
825    , ('\126635','\126651')
826    , ('\131072','\131072')
827    , ('\173782','\173782')
828    , ('\173824','\173824')
829    , ('\177972','\177972')
830    , ('\177984','\177984')
831    , ('\178205','\178205')
832    , ('\178208','\178208')
833    , ('\183969','\183969')
834    , ('\183984','\183984')
835    , ('\191456','\191456')
836    , ('\194560','\195101')
837    ]
838
839-- ------------------------------------------------------------
840
841isUnicodeLl :: Char -> Bool
842isUnicodeLl c
843  = elemCS c charPropUnicodeLl
844
845charPropUnicodeLl :: CharSet
846charPropUnicodeLl
847  = [ ('a','z')
848    , ('\181','\181')
849    , ('\223','\246')
850    , ('\248','\255')
851    , ('\257','\257')
852    , ('\259','\259')
853    , ('\261','\261')
854    , ('\263','\263')
855    , ('\265','\265')
856    , ('\267','\267')
857    , ('\269','\269')
858    , ('\271','\271')
859    , ('\273','\273')
860    , ('\275','\275')
861    , ('\277','\277')
862    , ('\279','\279')
863    , ('\281','\281')
864    , ('\283','\283')
865    , ('\285','\285')
866    , ('\287','\287')
867    , ('\289','\289')
868    , ('\291','\291')
869    , ('\293','\293')
870    , ('\295','\295')
871    , ('\297','\297')
872    , ('\299','\299')
873    , ('\301','\301')
874    , ('\303','\303')
875    , ('\305','\305')
876    , ('\307','\307')
877    , ('\309','\309')
878    , ('\311','\312')
879    , ('\314','\314')
880    , ('\316','\316')
881    , ('\318','\318')
882    , ('\320','\320')
883    , ('\322','\322')
884    , ('\324','\324')
885    , ('\326','\326')
886    , ('\328','\329')
887    , ('\331','\331')
888    , ('\333','\333')
889    , ('\335','\335')
890    , ('\337','\337')
891    , ('\339','\339')
892    , ('\341','\341')
893    , ('\343','\343')
894    , ('\345','\345')
895    , ('\347','\347')
896    , ('\349','\349')
897    , ('\351','\351')
898    , ('\353','\353')
899    , ('\355','\355')
900    , ('\357','\357')
901    , ('\359','\359')
902    , ('\361','\361')
903    , ('\363','\363')
904    , ('\365','\365')
905    , ('\367','\367')
906    , ('\369','\369')
907    , ('\371','\371')
908    , ('\373','\373')
909    , ('\375','\375')
910    , ('\378','\378')
911    , ('\380','\380')
912    , ('\382','\384')
913    , ('\387','\387')
914    , ('\389','\389')
915    , ('\392','\392')
916    , ('\396','\397')
917    , ('\402','\402')
918    , ('\405','\405')
919    , ('\409','\411')
920    , ('\414','\414')
921    , ('\417','\417')
922    , ('\419','\419')
923    , ('\421','\421')
924    , ('\424','\424')
925    , ('\426','\427')
926    , ('\429','\429')
927    , ('\432','\432')
928    , ('\436','\436')
929    , ('\438','\438')
930    , ('\441','\442')
931    , ('\445','\447')
932    , ('\454','\454')
933    , ('\457','\457')
934    , ('\460','\460')
935    , ('\462','\462')
936    , ('\464','\464')
937    , ('\466','\466')
938    , ('\468','\468')
939    , ('\470','\470')
940    , ('\472','\472')
941    , ('\474','\474')
942    , ('\476','\477')
943    , ('\479','\479')
944    , ('\481','\481')
945    , ('\483','\483')
946    , ('\485','\485')
947    , ('\487','\487')
948    , ('\489','\489')
949    , ('\491','\491')
950    , ('\493','\493')
951    , ('\495','\496')
952    , ('\499','\499')
953    , ('\501','\501')
954    , ('\505','\505')
955    , ('\507','\507')
956    , ('\509','\509')
957    , ('\511','\511')
958    , ('\513','\513')
959    , ('\515','\515')
960    , ('\517','\517')
961    , ('\519','\519')
962    , ('\521','\521')
963    , ('\523','\523')
964    , ('\525','\525')
965    , ('\527','\527')
966    , ('\529','\529')
967    , ('\531','\531')
968    , ('\533','\533')
969    , ('\535','\535')
970    , ('\537','\537')
971    , ('\539','\539')
972    , ('\541','\541')
973    , ('\543','\543')
974    , ('\545','\545')
975    , ('\547','\547')
976    , ('\549','\549')
977    , ('\551','\551')
978    , ('\553','\553')
979    , ('\555','\555')
980    , ('\557','\557')
981    , ('\559','\559')
982    , ('\561','\561')
983    , ('\563','\569')
984    , ('\572','\572')
985    , ('\575','\576')
986    , ('\578','\578')
987    , ('\583','\583')
988    , ('\585','\585')
989    , ('\587','\587')
990    , ('\589','\589')
991    , ('\591','\659')
992    , ('\661','\687')
993    , ('\881','\881')
994    , ('\883','\883')
995    , ('\887','\887')
996    , ('\891','\893')
997    , ('\912','\912')
998    , ('\940','\974')
999    , ('\976','\977')
1000    , ('\981','\983')
1001    , ('\985','\985')
1002    , ('\987','\987')
1003    , ('\989','\989')
1004    , ('\991','\991')
1005    , ('\993','\993')
1006    , ('\995','\995')
1007    , ('\997','\997')
1008    , ('\999','\999')
1009    , ('\1001','\1001')
1010    , ('\1003','\1003')
1011    , ('\1005','\1005')
1012    , ('\1007','\1011')
1013    , ('\1013','\1013')
1014    , ('\1016','\1016')
1015    , ('\1019','\1020')
1016    , ('\1072','\1119')
1017    , ('\1121','\1121')
1018    , ('\1123','\1123')
1019    , ('\1125','\1125')
1020    , ('\1127','\1127')
1021    , ('\1129','\1129')
1022    , ('\1131','\1131')
1023    , ('\1133','\1133')
1024    , ('\1135','\1135')
1025    , ('\1137','\1137')
1026    , ('\1139','\1139')
1027    , ('\1141','\1141')
1028    , ('\1143','\1143')
1029    , ('\1145','\1145')
1030    , ('\1147','\1147')
1031    , ('\1149','\1149')
1032    , ('\1151','\1151')
1033    , ('\1153','\1153')
1034    , ('\1163','\1163')
1035    , ('\1165','\1165')
1036    , ('\1167','\1167')
1037    , ('\1169','\1169')
1038    , ('\1171','\1171')
1039    , ('\1173','\1173')
1040    , ('\1175','\1175')
1041    , ('\1177','\1177')
1042    , ('\1179','\1179')
1043    , ('\1181','\1181')
1044    , ('\1183','\1183')
1045    , ('\1185','\1185')
1046    , ('\1187','\1187')
1047    , ('\1189','\1189')
1048    , ('\1191','\1191')
1049    , ('\1193','\1193')
1050    , ('\1195','\1195')
1051    , ('\1197','\1197')
1052    , ('\1199','\1199')
1053    , ('\1201','\1201')
1054    , ('\1203','\1203')
1055    , ('\1205','\1205')
1056    , ('\1207','\1207')
1057    , ('\1209','\1209')
1058    , ('\1211','\1211')
1059    , ('\1213','\1213')
1060    , ('\1215','\1215')
1061    , ('\1218','\1218')
1062    , ('\1220','\1220')
1063    , ('\1222','\1222')
1064    , ('\1224','\1224')
1065    , ('\1226','\1226')
1066    , ('\1228','\1228')
1067    , ('\1230','\1231')
1068    , ('\1233','\1233')
1069    , ('\1235','\1235')
1070    , ('\1237','\1237')
1071    , ('\1239','\1239')
1072    , ('\1241','\1241')
1073    , ('\1243','\1243')
1074    , ('\1245','\1245')
1075    , ('\1247','\1247')
1076    , ('\1249','\1249')
1077    , ('\1251','\1251')
1078    , ('\1253','\1253')
1079    , ('\1255','\1255')
1080    , ('\1257','\1257')
1081    , ('\1259','\1259')
1082    , ('\1261','\1261')
1083    , ('\1263','\1263')
1084    , ('\1265','\1265')
1085    , ('\1267','\1267')
1086    , ('\1269','\1269')
1087    , ('\1271','\1271')
1088    , ('\1273','\1273')
1089    , ('\1275','\1275')
1090    , ('\1277','\1277')
1091    , ('\1279','\1279')
1092    , ('\1281','\1281')
1093    , ('\1283','\1283')
1094    , ('\1285','\1285')
1095    , ('\1287','\1287')
1096    , ('\1289','\1289')
1097    , ('\1291','\1291')
1098    , ('\1293','\1293')
1099    , ('\1295','\1295')
1100    , ('\1297','\1297')
1101    , ('\1299','\1299')
1102    , ('\1301','\1301')
1103    , ('\1303','\1303')
1104    , ('\1305','\1305')
1105    , ('\1307','\1307')
1106    , ('\1309','\1309')
1107    , ('\1311','\1311')
1108    , ('\1313','\1313')
1109    , ('\1315','\1315')
1110    , ('\1317','\1317')
1111    , ('\1319','\1319')
1112    , ('\1321','\1321')
1113    , ('\1323','\1323')
1114    , ('\1325','\1325')
1115    , ('\1327','\1327')
1116    , ('\1376','\1416')
1117    , ('\4304','\4346')
1118    , ('\4349','\4351')
1119    , ('\5112','\5117')
1120    , ('\7296','\7304')
1121    , ('\7424','\7467')
1122    , ('\7531','\7543')
1123    , ('\7545','\7578')
1124    , ('\7681','\7681')
1125    , ('\7683','\7683')
1126    , ('\7685','\7685')
1127    , ('\7687','\7687')
1128    , ('\7689','\7689')
1129    , ('\7691','\7691')
1130    , ('\7693','\7693')
1131    , ('\7695','\7695')
1132    , ('\7697','\7697')
1133    , ('\7699','\7699')
1134    , ('\7701','\7701')
1135    , ('\7703','\7703')
1136    , ('\7705','\7705')
1137    , ('\7707','\7707')
1138    , ('\7709','\7709')
1139    , ('\7711','\7711')
1140    , ('\7713','\7713')
1141    , ('\7715','\7715')
1142    , ('\7717','\7717')
1143    , ('\7719','\7719')
1144    , ('\7721','\7721')
1145    , ('\7723','\7723')
1146    , ('\7725','\7725')
1147    , ('\7727','\7727')
1148    , ('\7729','\7729')
1149    , ('\7731','\7731')
1150    , ('\7733','\7733')
1151    , ('\7735','\7735')
1152    , ('\7737','\7737')
1153    , ('\7739','\7739')
1154    , ('\7741','\7741')
1155    , ('\7743','\7743')
1156    , ('\7745','\7745')
1157    , ('\7747','\7747')
1158    , ('\7749','\7749')
1159    , ('\7751','\7751')
1160    , ('\7753','\7753')
1161    , ('\7755','\7755')
1162    , ('\7757','\7757')
1163    , ('\7759','\7759')
1164    , ('\7761','\7761')
1165    , ('\7763','\7763')
1166    , ('\7765','\7765')
1167    , ('\7767','\7767')
1168    , ('\7769','\7769')
1169    , ('\7771','\7771')
1170    , ('\7773','\7773')
1171    , ('\7775','\7775')
1172    , ('\7777','\7777')
1173    , ('\7779','\7779')
1174    , ('\7781','\7781')
1175    , ('\7783','\7783')
1176    , ('\7785','\7785')
1177    , ('\7787','\7787')
1178    , ('\7789','\7789')
1179    , ('\7791','\7791')
1180    , ('\7793','\7793')
1181    , ('\7795','\7795')
1182    , ('\7797','\7797')
1183    , ('\7799','\7799')
1184    , ('\7801','\7801')
1185    , ('\7803','\7803')
1186    , ('\7805','\7805')
1187    , ('\7807','\7807')
1188    , ('\7809','\7809')
1189    , ('\7811','\7811')
1190    , ('\7813','\7813')
1191    , ('\7815','\7815')
1192    , ('\7817','\7817')
1193    , ('\7819','\7819')
1194    , ('\7821','\7821')
1195    , ('\7823','\7823')
1196    , ('\7825','\7825')
1197    , ('\7827','\7827')
1198    , ('\7829','\7837')
1199    , ('\7839','\7839')
1200    , ('\7841','\7841')
1201    , ('\7843','\7843')
1202    , ('\7845','\7845')
1203    , ('\7847','\7847')
1204    , ('\7849','\7849')
1205    , ('\7851','\7851')
1206    , ('\7853','\7853')
1207    , ('\7855','\7855')
1208    , ('\7857','\7857')
1209    , ('\7859','\7859')
1210    , ('\7861','\7861')
1211    , ('\7863','\7863')
1212    , ('\7865','\7865')
1213    , ('\7867','\7867')
1214    , ('\7869','\7869')
1215    , ('\7871','\7871')
1216    , ('\7873','\7873')
1217    , ('\7875','\7875')
1218    , ('\7877','\7877')
1219    , ('\7879','\7879')
1220    , ('\7881','\7881')
1221    , ('\7883','\7883')
1222    , ('\7885','\7885')
1223    , ('\7887','\7887')
1224    , ('\7889','\7889')
1225    , ('\7891','\7891')
1226    , ('\7893','\7893')
1227    , ('\7895','\7895')
1228    , ('\7897','\7897')
1229    , ('\7899','\7899')
1230    , ('\7901','\7901')
1231    , ('\7903','\7903')
1232    , ('\7905','\7905')
1233    , ('\7907','\7907')
1234    , ('\7909','\7909')
1235    , ('\7911','\7911')
1236    , ('\7913','\7913')
1237    , ('\7915','\7915')
1238    , ('\7917','\7917')
1239    , ('\7919','\7919')
1240    , ('\7921','\7921')
1241    , ('\7923','\7923')
1242    , ('\7925','\7925')
1243    , ('\7927','\7927')
1244    , ('\7929','\7929')
1245    , ('\7931','\7931')
1246    , ('\7933','\7933')
1247    , ('\7935','\7943')
1248    , ('\7952','\7957')
1249    , ('\7968','\7975')
1250    , ('\7984','\7991')
1251    , ('\8000','\8005')
1252    , ('\8016','\8023')
1253    , ('\8032','\8039')
1254    , ('\8048','\8061')
1255    , ('\8064','\8071')
1256    , ('\8080','\8087')
1257    , ('\8096','\8103')
1258    , ('\8112','\8116')
1259    , ('\8118','\8119')
1260    , ('\8126','\8126')
1261    , ('\8130','\8132')
1262    , ('\8134','\8135')
1263    , ('\8144','\8147')
1264    , ('\8150','\8151')
1265    , ('\8160','\8167')
1266    , ('\8178','\8180')
1267    , ('\8182','\8183')
1268    , ('\8458','\8458')
1269    , ('\8462','\8463')
1270    , ('\8467','\8467')
1271    , ('\8495','\8495')
1272    , ('\8500','\8500')
1273    , ('\8505','\8505')
1274    , ('\8508','\8509')
1275    , ('\8518','\8521')
1276    , ('\8526','\8526')
1277    , ('\8580','\8580')
1278    , ('\11312','\11358')
1279    , ('\11361','\11361')
1280    , ('\11365','\11366')
1281    , ('\11368','\11368')
1282    , ('\11370','\11370')
1283    , ('\11372','\11372')
1284    , ('\11377','\11377')
1285    , ('\11379','\11380')
1286    , ('\11382','\11387')
1287    , ('\11393','\11393')
1288    , ('\11395','\11395')
1289    , ('\11397','\11397')
1290    , ('\11399','\11399')
1291    , ('\11401','\11401')
1292    , ('\11403','\11403')
1293    , ('\11405','\11405')
1294    , ('\11407','\11407')
1295    , ('\11409','\11409')
1296    , ('\11411','\11411')
1297    , ('\11413','\11413')
1298    , ('\11415','\11415')
1299    , ('\11417','\11417')
1300    , ('\11419','\11419')
1301    , ('\11421','\11421')
1302    , ('\11423','\11423')
1303    , ('\11425','\11425')
1304    , ('\11427','\11427')
1305    , ('\11429','\11429')
1306    , ('\11431','\11431')
1307    , ('\11433','\11433')
1308    , ('\11435','\11435')
1309    , ('\11437','\11437')
1310    , ('\11439','\11439')
1311    , ('\11441','\11441')
1312    , ('\11443','\11443')
1313    , ('\11445','\11445')
1314    , ('\11447','\11447')
1315    , ('\11449','\11449')
1316    , ('\11451','\11451')
1317    , ('\11453','\11453')
1318    , ('\11455','\11455')
1319    , ('\11457','\11457')
1320    , ('\11459','\11459')
1321    , ('\11461','\11461')
1322    , ('\11463','\11463')
1323    , ('\11465','\11465')
1324    , ('\11467','\11467')
1325    , ('\11469','\11469')
1326    , ('\11471','\11471')
1327    , ('\11473','\11473')
1328    , ('\11475','\11475')
1329    , ('\11477','\11477')
1330    , ('\11479','\11479')
1331    , ('\11481','\11481')
1332    , ('\11483','\11483')
1333    , ('\11485','\11485')
1334    , ('\11487','\11487')
1335    , ('\11489','\11489')
1336    , ('\11491','\11492')
1337    , ('\11500','\11500')
1338    , ('\11502','\11502')
1339    , ('\11507','\11507')
1340    , ('\11520','\11557')
1341    , ('\11559','\11559')
1342    , ('\11565','\11565')
1343    , ('\42561','\42561')
1344    , ('\42563','\42563')
1345    , ('\42565','\42565')
1346    , ('\42567','\42567')
1347    , ('\42569','\42569')
1348    , ('\42571','\42571')
1349    , ('\42573','\42573')
1350    , ('\42575','\42575')
1351    , ('\42577','\42577')
1352    , ('\42579','\42579')
1353    , ('\42581','\42581')
1354    , ('\42583','\42583')
1355    , ('\42585','\42585')
1356    , ('\42587','\42587')
1357    , ('\42589','\42589')
1358    , ('\42591','\42591')
1359    , ('\42593','\42593')
1360    , ('\42595','\42595')
1361    , ('\42597','\42597')
1362    , ('\42599','\42599')
1363    , ('\42601','\42601')
1364    , ('\42603','\42603')
1365    , ('\42605','\42605')
1366    , ('\42625','\42625')
1367    , ('\42627','\42627')
1368    , ('\42629','\42629')
1369    , ('\42631','\42631')
1370    , ('\42633','\42633')
1371    , ('\42635','\42635')
1372    , ('\42637','\42637')
1373    , ('\42639','\42639')
1374    , ('\42641','\42641')
1375    , ('\42643','\42643')
1376    , ('\42645','\42645')
1377    , ('\42647','\42647')
1378    , ('\42649','\42649')
1379    , ('\42651','\42651')
1380    , ('\42787','\42787')
1381    , ('\42789','\42789')
1382    , ('\42791','\42791')
1383    , ('\42793','\42793')
1384    , ('\42795','\42795')
1385    , ('\42797','\42797')
1386    , ('\42799','\42801')
1387    , ('\42803','\42803')
1388    , ('\42805','\42805')
1389    , ('\42807','\42807')
1390    , ('\42809','\42809')
1391    , ('\42811','\42811')
1392    , ('\42813','\42813')
1393    , ('\42815','\42815')
1394    , ('\42817','\42817')
1395    , ('\42819','\42819')
1396    , ('\42821','\42821')
1397    , ('\42823','\42823')
1398    , ('\42825','\42825')
1399    , ('\42827','\42827')
1400    , ('\42829','\42829')
1401    , ('\42831','\42831')
1402    , ('\42833','\42833')
1403    , ('\42835','\42835')
1404    , ('\42837','\42837')
1405    , ('\42839','\42839')
1406    , ('\42841','\42841')
1407    , ('\42843','\42843')
1408    , ('\42845','\42845')
1409    , ('\42847','\42847')
1410    , ('\42849','\42849')
1411    , ('\42851','\42851')
1412    , ('\42853','\42853')
1413    , ('\42855','\42855')
1414    , ('\42857','\42857')
1415    , ('\42859','\42859')
1416    , ('\42861','\42861')
1417    , ('\42863','\42863')
1418    , ('\42865','\42872')
1419    , ('\42874','\42874')
1420    , ('\42876','\42876')
1421    , ('\42879','\42879')
1422    , ('\42881','\42881')
1423    , ('\42883','\42883')
1424    , ('\42885','\42885')
1425    , ('\42887','\42887')
1426    , ('\42892','\42892')
1427    , ('\42894','\42894')
1428    , ('\42897','\42897')
1429    , ('\42899','\42901')
1430    , ('\42903','\42903')
1431    , ('\42905','\42905')
1432    , ('\42907','\42907')
1433    , ('\42909','\42909')
1434    , ('\42911','\42911')
1435    , ('\42913','\42913')
1436    , ('\42915','\42915')
1437    , ('\42917','\42917')
1438    , ('\42919','\42919')
1439    , ('\42921','\42921')
1440    , ('\42927','\42927')
1441    , ('\42933','\42933')
1442    , ('\42935','\42935')
1443    , ('\42937','\42937')
1444    , ('\42939','\42939')
1445    , ('\42941','\42941')
1446    , ('\42943','\42943')
1447    , ('\42947','\42947')
1448    , ('\43002','\43002')
1449    , ('\43824','\43866')
1450    , ('\43872','\43879')
1451    , ('\43888','\43967')
1452    , ('\64256','\64262')
1453    , ('\64275','\64279')
1454    , ('\65345','\65370')
1455    , ('\66600','\66639')
1456    , ('\66776','\66811')
1457    , ('\68800','\68850')
1458    , ('\71872','\71903')
1459    , ('\93792','\93823')
1460    , ('\119834','\119859')
1461    , ('\119886','\119892')
1462    , ('\119894','\119911')
1463    , ('\119938','\119963')
1464    , ('\119990','\119993')
1465    , ('\119995','\119995')
1466    , ('\119997','\120003')
1467    , ('\120005','\120015')
1468    , ('\120042','\120067')
1469    , ('\120094','\120119')
1470    , ('\120146','\120171')
1471    , ('\120198','\120223')
1472    , ('\120250','\120275')
1473    , ('\120302','\120327')
1474    , ('\120354','\120379')
1475    , ('\120406','\120431')
1476    , ('\120458','\120485')
1477    , ('\120514','\120538')
1478    , ('\120540','\120545')
1479    , ('\120572','\120596')
1480    , ('\120598','\120603')
1481    , ('\120630','\120654')
1482    , ('\120656','\120661')
1483    , ('\120688','\120712')
1484    , ('\120714','\120719')
1485    , ('\120746','\120770')
1486    , ('\120772','\120777')
1487    , ('\120779','\120779')
1488    , ('\125218','\125251')
1489    ]
1490
1491-- ------------------------------------------------------------
1492
1493isUnicodeLm :: Char -> Bool
1494isUnicodeLm c
1495  = elemCS c charPropUnicodeLm
1496
1497charPropUnicodeLm :: CharSet
1498charPropUnicodeLm
1499  = [ ('\688','\705')
1500    , ('\710','\721')
1501    , ('\736','\740')
1502    , ('\748','\748')
1503    , ('\750','\750')
1504    , ('\884','\884')
1505    , ('\890','\890')
1506    , ('\1369','\1369')
1507    , ('\1600','\1600')
1508    , ('\1765','\1766')
1509    , ('\2036','\2037')
1510    , ('\2042','\2042')
1511    , ('\2074','\2074')
1512    , ('\2084','\2084')
1513    , ('\2088','\2088')
1514    , ('\2417','\2417')
1515    , ('\3654','\3654')
1516    , ('\3782','\3782')
1517    , ('\4348','\4348')
1518    , ('\6103','\6103')
1519    , ('\6211','\6211')
1520    , ('\6823','\6823')
1521    , ('\7288','\7293')
1522    , ('\7468','\7530')
1523    , ('\7544','\7544')
1524    , ('\7579','\7615')
1525    , ('\8305','\8305')
1526    , ('\8319','\8319')
1527    , ('\8336','\8348')
1528    , ('\11388','\11389')
1529    , ('\11631','\11631')
1530    , ('\11823','\11823')
1531    , ('\12293','\12293')
1532    , ('\12337','\12341')
1533    , ('\12347','\12347')
1534    , ('\12445','\12446')
1535    , ('\12540','\12542')
1536    , ('\40981','\40981')
1537    , ('\42232','\42237')
1538    , ('\42508','\42508')
1539    , ('\42623','\42623')
1540    , ('\42652','\42653')
1541    , ('\42775','\42783')
1542    , ('\42864','\42864')
1543    , ('\42888','\42888')
1544    , ('\43000','\43001')
1545    , ('\43471','\43471')
1546    , ('\43494','\43494')
1547    , ('\43632','\43632')
1548    , ('\43741','\43741')
1549    , ('\43763','\43764')
1550    , ('\43868','\43871')
1551    , ('\65392','\65392')
1552    , ('\65438','\65439')
1553    , ('\92992','\92995')
1554    , ('\94099','\94111')
1555    , ('\94176','\94177')
1556    , ('\94179','\94179')
1557    , ('\123191','\123197')
1558    , ('\125259','\125259')
1559    ]
1560
1561-- ------------------------------------------------------------
1562
1563isUnicodeLo :: Char -> Bool
1564isUnicodeLo c
1565  = elemCS c charPropUnicodeLo
1566
1567charPropUnicodeLo :: CharSet
1568charPropUnicodeLo
1569  = [ ('\170','\170')
1570    , ('\186','\186')
1571    , ('\443','\443')
1572    , ('\448','\451')
1573    , ('\660','\660')
1574    , ('\1488','\1514')
1575    , ('\1519','\1522')
1576    , ('\1568','\1599')
1577    , ('\1601','\1610')
1578    , ('\1646','\1647')
1579    , ('\1649','\1747')
1580    , ('\1749','\1749')
1581    , ('\1774','\1775')
1582    , ('\1786','\1788')
1583    , ('\1791','\1791')
1584    , ('\1808','\1808')
1585    , ('\1810','\1839')
1586    , ('\1869','\1957')
1587    , ('\1969','\1969')
1588    , ('\1994','\2026')
1589    , ('\2048','\2069')
1590    , ('\2112','\2136')
1591    , ('\2144','\2154')
1592    , ('\2208','\2228')
1593    , ('\2230','\2237')
1594    , ('\2308','\2361')
1595    , ('\2365','\2365')
1596    , ('\2384','\2384')
1597    , ('\2392','\2401')
1598    , ('\2418','\2432')
1599    , ('\2437','\2444')
1600    , ('\2447','\2448')
1601    , ('\2451','\2472')
1602    , ('\2474','\2480')
1603    , ('\2482','\2482')
1604    , ('\2486','\2489')
1605    , ('\2493','\2493')
1606    , ('\2510','\2510')
1607    , ('\2524','\2525')
1608    , ('\2527','\2529')
1609    , ('\2544','\2545')
1610    , ('\2556','\2556')
1611    , ('\2565','\2570')
1612    , ('\2575','\2576')
1613    , ('\2579','\2600')
1614    , ('\2602','\2608')
1615    , ('\2610','\2611')
1616    , ('\2613','\2614')
1617    , ('\2616','\2617')
1618    , ('\2649','\2652')
1619    , ('\2654','\2654')
1620    , ('\2674','\2676')
1621    , ('\2693','\2701')
1622    , ('\2703','\2705')
1623    , ('\2707','\2728')
1624    , ('\2730','\2736')
1625    , ('\2738','\2739')
1626    , ('\2741','\2745')
1627    , ('\2749','\2749')
1628    , ('\2768','\2768')
1629    , ('\2784','\2785')
1630    , ('\2809','\2809')
1631    , ('\2821','\2828')
1632    , ('\2831','\2832')
1633    , ('\2835','\2856')
1634    , ('\2858','\2864')
1635    , ('\2866','\2867')
1636    , ('\2869','\2873')
1637    , ('\2877','\2877')
1638    , ('\2908','\2909')
1639    , ('\2911','\2913')
1640    , ('\2929','\2929')
1641    , ('\2947','\2947')
1642    , ('\2949','\2954')
1643    , ('\2958','\2960')
1644    , ('\2962','\2965')
1645    , ('\2969','\2970')
1646    , ('\2972','\2972')
1647    , ('\2974','\2975')
1648    , ('\2979','\2980')
1649    , ('\2984','\2986')
1650    , ('\2990','\3001')
1651    , ('\3024','\3024')
1652    , ('\3077','\3084')
1653    , ('\3086','\3088')
1654    , ('\3090','\3112')
1655    , ('\3114','\3129')
1656    , ('\3133','\3133')
1657    , ('\3160','\3162')
1658    , ('\3168','\3169')
1659    , ('\3200','\3200')
1660    , ('\3205','\3212')
1661    , ('\3214','\3216')
1662    , ('\3218','\3240')
1663    , ('\3242','\3251')
1664    , ('\3253','\3257')
1665    , ('\3261','\3261')
1666    , ('\3294','\3294')
1667    , ('\3296','\3297')
1668    , ('\3313','\3314')
1669    , ('\3333','\3340')
1670    , ('\3342','\3344')
1671    , ('\3346','\3386')
1672    , ('\3389','\3389')
1673    , ('\3406','\3406')
1674    , ('\3412','\3414')
1675    , ('\3423','\3425')
1676    , ('\3450','\3455')
1677    , ('\3461','\3478')
1678    , ('\3482','\3505')
1679    , ('\3507','\3515')
1680    , ('\3517','\3517')
1681    , ('\3520','\3526')
1682    , ('\3585','\3632')
1683    , ('\3634','\3635')
1684    , ('\3648','\3653')
1685    , ('\3713','\3714')
1686    , ('\3716','\3716')
1687    , ('\3718','\3722')
1688    , ('\3724','\3747')
1689    , ('\3749','\3749')
1690    , ('\3751','\3760')
1691    , ('\3762','\3763')
1692    , ('\3773','\3773')
1693    , ('\3776','\3780')
1694    , ('\3804','\3807')
1695    , ('\3840','\3840')
1696    , ('\3904','\3911')
1697    , ('\3913','\3948')
1698    , ('\3976','\3980')
1699    , ('\4096','\4138')
1700    , ('\4159','\4159')
1701    , ('\4176','\4181')
1702    , ('\4186','\4189')
1703    , ('\4193','\4193')
1704    , ('\4197','\4198')
1705    , ('\4206','\4208')
1706    , ('\4213','\4225')
1707    , ('\4238','\4238')
1708    , ('\4352','\4680')
1709    , ('\4682','\4685')
1710    , ('\4688','\4694')
1711    , ('\4696','\4696')
1712    , ('\4698','\4701')
1713    , ('\4704','\4744')
1714    , ('\4746','\4749')
1715    , ('\4752','\4784')
1716    , ('\4786','\4789')
1717    , ('\4792','\4798')
1718    , ('\4800','\4800')
1719    , ('\4802','\4805')
1720    , ('\4808','\4822')
1721    , ('\4824','\4880')
1722    , ('\4882','\4885')
1723    , ('\4888','\4954')
1724    , ('\4992','\5007')
1725    , ('\5121','\5740')
1726    , ('\5743','\5759')
1727    , ('\5761','\5786')
1728    , ('\5792','\5866')
1729    , ('\5873','\5880')
1730    , ('\5888','\5900')
1731    , ('\5902','\5905')
1732    , ('\5920','\5937')
1733    , ('\5952','\5969')
1734    , ('\5984','\5996')
1735    , ('\5998','\6000')
1736    , ('\6016','\6067')
1737    , ('\6108','\6108')
1738    , ('\6176','\6210')
1739    , ('\6212','\6264')
1740    , ('\6272','\6276')
1741    , ('\6279','\6312')
1742    , ('\6314','\6314')
1743    , ('\6320','\6389')
1744    , ('\6400','\6430')
1745    , ('\6480','\6509')
1746    , ('\6512','\6516')
1747    , ('\6528','\6571')
1748    , ('\6576','\6601')
1749    , ('\6656','\6678')
1750    , ('\6688','\6740')
1751    , ('\6917','\6963')
1752    , ('\6981','\6987')
1753    , ('\7043','\7072')
1754    , ('\7086','\7087')
1755    , ('\7098','\7141')
1756    , ('\7168','\7203')
1757    , ('\7245','\7247')
1758    , ('\7258','\7287')
1759    , ('\7401','\7404')
1760    , ('\7406','\7411')
1761    , ('\7413','\7414')
1762    , ('\7418','\7418')
1763    , ('\8501','\8504')
1764    , ('\11568','\11623')
1765    , ('\11648','\11670')
1766    , ('\11680','\11686')
1767    , ('\11688','\11694')
1768    , ('\11696','\11702')
1769    , ('\11704','\11710')
1770    , ('\11712','\11718')
1771    , ('\11720','\11726')
1772    , ('\11728','\11734')
1773    , ('\11736','\11742')
1774    , ('\12294','\12294')
1775    , ('\12348','\12348')
1776    , ('\12353','\12438')
1777    , ('\12447','\12447')
1778    , ('\12449','\12538')
1779    , ('\12543','\12543')
1780    , ('\12549','\12591')
1781    , ('\12593','\12686')
1782    , ('\12704','\12730')
1783    , ('\12784','\12799')
1784    , ('\13312','\13312')
1785    , ('\19893','\19893')
1786    , ('\19968','\19968')
1787    , ('\40943','\40943')
1788    , ('\40960','\40980')
1789    , ('\40982','\42124')
1790    , ('\42192','\42231')
1791    , ('\42240','\42507')
1792    , ('\42512','\42527')
1793    , ('\42538','\42539')
1794    , ('\42606','\42606')
1795    , ('\42656','\42725')
1796    , ('\42895','\42895')
1797    , ('\42999','\42999')
1798    , ('\43003','\43009')
1799    , ('\43011','\43013')
1800    , ('\43015','\43018')
1801    , ('\43020','\43042')
1802    , ('\43072','\43123')
1803    , ('\43138','\43187')
1804    , ('\43250','\43255')
1805    , ('\43259','\43259')
1806    , ('\43261','\43262')
1807    , ('\43274','\43301')
1808    , ('\43312','\43334')
1809    , ('\43360','\43388')
1810    , ('\43396','\43442')
1811    , ('\43488','\43492')
1812    , ('\43495','\43503')
1813    , ('\43514','\43518')
1814    , ('\43520','\43560')
1815    , ('\43584','\43586')
1816    , ('\43588','\43595')
1817    , ('\43616','\43631')
1818    , ('\43633','\43638')
1819    , ('\43642','\43642')
1820    , ('\43646','\43695')
1821    , ('\43697','\43697')
1822    , ('\43701','\43702')
1823    , ('\43705','\43709')
1824    , ('\43712','\43712')
1825    , ('\43714','\43714')
1826    , ('\43739','\43740')
1827    , ('\43744','\43754')
1828    , ('\43762','\43762')
1829    , ('\43777','\43782')
1830    , ('\43785','\43790')
1831    , ('\43793','\43798')
1832    , ('\43808','\43814')
1833    , ('\43816','\43822')
1834    , ('\43968','\44002')
1835    , ('\44032','\44032')
1836    , ('\55203','\55203')
1837    , ('\55216','\55238')
1838    , ('\55243','\55291')
1839    , ('\63744','\64109')
1840    , ('\64112','\64217')
1841    , ('\64285','\64285')
1842    , ('\64287','\64296')
1843    , ('\64298','\64310')
1844    , ('\64312','\64316')
1845    , ('\64318','\64318')
1846    , ('\64320','\64321')
1847    , ('\64323','\64324')
1848    , ('\64326','\64433')
1849    , ('\64467','\64829')
1850    , ('\64848','\64911')
1851    , ('\64914','\64967')
1852    , ('\65008','\65019')
1853    , ('\65136','\65140')
1854    , ('\65142','\65276')
1855    , ('\65382','\65391')
1856    , ('\65393','\65437')
1857    , ('\65440','\65470')
1858    , ('\65474','\65479')
1859    , ('\65482','\65487')
1860    , ('\65490','\65495')
1861    , ('\65498','\65500')
1862    , ('\65536','\65547')
1863    , ('\65549','\65574')
1864    , ('\65576','\65594')
1865    , ('\65596','\65597')
1866    , ('\65599','\65613')
1867    , ('\65616','\65629')
1868    , ('\65664','\65786')
1869    , ('\66176','\66204')
1870    , ('\66208','\66256')
1871    , ('\66304','\66335')
1872    , ('\66349','\66368')
1873    , ('\66370','\66377')
1874    , ('\66384','\66421')
1875    , ('\66432','\66461')
1876    , ('\66464','\66499')
1877    , ('\66504','\66511')
1878    , ('\66640','\66717')
1879    , ('\66816','\66855')
1880    , ('\66864','\66915')
1881    , ('\67072','\67382')
1882    , ('\67392','\67413')
1883    , ('\67424','\67431')
1884    , ('\67584','\67589')
1885    , ('\67592','\67592')
1886    , ('\67594','\67637')
1887    , ('\67639','\67640')
1888    , ('\67644','\67644')
1889    , ('\67647','\67669')
1890    , ('\67680','\67702')
1891    , ('\67712','\67742')
1892    , ('\67808','\67826')
1893    , ('\67828','\67829')
1894    , ('\67840','\67861')
1895    , ('\67872','\67897')
1896    , ('\67968','\68023')
1897    , ('\68030','\68031')
1898    , ('\68096','\68096')
1899    , ('\68112','\68115')
1900    , ('\68117','\68119')
1901    , ('\68121','\68149')
1902    , ('\68192','\68220')
1903    , ('\68224','\68252')
1904    , ('\68288','\68295')
1905    , ('\68297','\68324')
1906    , ('\68352','\68405')
1907    , ('\68416','\68437')
1908    , ('\68448','\68466')
1909    , ('\68480','\68497')
1910    , ('\68608','\68680')
1911    , ('\68864','\68899')
1912    , ('\69376','\69404')
1913    , ('\69415','\69415')
1914    , ('\69424','\69445')
1915    , ('\69600','\69622')
1916    , ('\69635','\69687')
1917    , ('\69763','\69807')
1918    , ('\69840','\69864')
1919    , ('\69891','\69926')
1920    , ('\69956','\69956')
1921    , ('\69968','\70002')
1922    , ('\70006','\70006')
1923    , ('\70019','\70066')
1924    , ('\70081','\70084')
1925    , ('\70106','\70106')
1926    , ('\70108','\70108')
1927    , ('\70144','\70161')
1928    , ('\70163','\70187')
1929    , ('\70272','\70278')
1930    , ('\70280','\70280')
1931    , ('\70282','\70285')
1932    , ('\70287','\70301')
1933    , ('\70303','\70312')
1934    , ('\70320','\70366')
1935    , ('\70405','\70412')
1936    , ('\70415','\70416')
1937    , ('\70419','\70440')
1938    , ('\70442','\70448')
1939    , ('\70450','\70451')
1940    , ('\70453','\70457')
1941    , ('\70461','\70461')
1942    , ('\70480','\70480')
1943    , ('\70493','\70497')
1944    , ('\70656','\70708')
1945    , ('\70727','\70730')
1946    , ('\70751','\70751')
1947    , ('\70784','\70831')
1948    , ('\70852','\70853')
1949    , ('\70855','\70855')
1950    , ('\71040','\71086')
1951    , ('\71128','\71131')
1952    , ('\71168','\71215')
1953    , ('\71236','\71236')
1954    , ('\71296','\71338')
1955    , ('\71352','\71352')
1956    , ('\71424','\71450')
1957    , ('\71680','\71723')
1958    , ('\71935','\71935')
1959    , ('\72096','\72103')
1960    , ('\72106','\72144')
1961    , ('\72161','\72161')
1962    , ('\72163','\72163')
1963    , ('\72192','\72192')
1964    , ('\72203','\72242')
1965    , ('\72250','\72250')
1966    , ('\72272','\72272')
1967    , ('\72284','\72329')
1968    , ('\72349','\72349')
1969    , ('\72384','\72440')
1970    , ('\72704','\72712')
1971    , ('\72714','\72750')
1972    , ('\72768','\72768')
1973    , ('\72818','\72847')
1974    , ('\72960','\72966')
1975    , ('\72968','\72969')
1976    , ('\72971','\73008')
1977    , ('\73030','\73030')
1978    , ('\73056','\73061')
1979    , ('\73063','\73064')
1980    , ('\73066','\73097')
1981    , ('\73112','\73112')
1982    , ('\73440','\73458')
1983    , ('\73728','\74649')
1984    , ('\74880','\75075')
1985    , ('\77824','\78894')
1986    , ('\82944','\83526')
1987    , ('\92160','\92728')
1988    , ('\92736','\92766')
1989    , ('\92880','\92909')
1990    , ('\92928','\92975')
1991    , ('\93027','\93047')
1992    , ('\93053','\93071')
1993    , ('\93952','\94026')
1994    , ('\94032','\94032')
1995    , ('\94208','\94208')
1996    , ('\100343','\100343')
1997    , ('\100352','\101106')
1998    , ('\110592','\110878')
1999    , ('\110928','\110930')
2000    , ('\110948','\110951')
2001    , ('\110960','\111355')
2002    , ('\113664','\113770')
2003    , ('\113776','\113788')
2004    , ('\113792','\113800')
2005    , ('\113808','\113817')
2006    , ('\123136','\123180')
2007    , ('\123214','\123214')
2008    , ('\123584','\123627')
2009    , ('\124928','\125124')
2010    , ('\126464','\126467')
2011    , ('\126469','\126495')
2012    , ('\126497','\126498')
2013    , ('\126500','\126500')
2014    , ('\126503','\126503')
2015    , ('\126505','\126514')
2016    , ('\126516','\126519')
2017    , ('\126521','\126521')
2018    , ('\126523','\126523')
2019    , ('\126530','\126530')
2020    , ('\126535','\126535')
2021    , ('\126537','\126537')
2022    , ('\126539','\126539')
2023    , ('\126541','\126543')
2024    , ('\126545','\126546')
2025    , ('\126548','\126548')
2026    , ('\126551','\126551')
2027    , ('\126553','\126553')
2028    , ('\126555','\126555')
2029    , ('\126557','\126557')
2030    , ('\126559','\126559')
2031    , ('\126561','\126562')
2032    , ('\126564','\126564')
2033    , ('\126567','\126570')
2034    , ('\126572','\126578')
2035    , ('\126580','\126583')
2036    , ('\126585','\126588')
2037    , ('\126590','\126590')
2038    , ('\126592','\126601')
2039    , ('\126603','\126619')
2040    , ('\126625','\126627')
2041    , ('\126629','\126633')
2042    , ('\126635','\126651')
2043    , ('\131072','\131072')
2044    , ('\173782','\173782')
2045    , ('\173824','\173824')
2046    , ('\177972','\177972')
2047    , ('\177984','\177984')
2048    , ('\178205','\178205')
2049    , ('\178208','\178208')
2050    , ('\183969','\183969')
2051    , ('\183984','\183984')
2052    , ('\191456','\191456')
2053    , ('\194560','\195101')
2054    ]
2055
2056-- ------------------------------------------------------------
2057
2058isUnicodeLt :: Char -> Bool
2059isUnicodeLt c
2060  = elemCS c charPropUnicodeLt
2061
2062charPropUnicodeLt :: CharSet
2063charPropUnicodeLt
2064  = [ ('\453','\453')
2065    , ('\456','\456')
2066    , ('\459','\459')
2067    , ('\498','\498')
2068    , ('\8072','\8079')
2069    , ('\8088','\8095')
2070    , ('\8104','\8111')
2071    , ('\8124','\8124')
2072    , ('\8140','\8140')
2073    , ('\8188','\8188')
2074    ]
2075
2076-- ------------------------------------------------------------
2077
2078isUnicodeLu :: Char -> Bool
2079isUnicodeLu c
2080  = elemCS c charPropUnicodeLu
2081
2082charPropUnicodeLu :: CharSet
2083charPropUnicodeLu
2084  = [ ('A','Z')
2085    , ('\192','\214')
2086    , ('\216','\222')
2087    , ('\256','\256')
2088    , ('\258','\258')
2089    , ('\260','\260')
2090    , ('\262','\262')
2091    , ('\264','\264')
2092    , ('\266','\266')
2093    , ('\268','\268')
2094    , ('\270','\270')
2095    , ('\272','\272')
2096    , ('\274','\274')
2097    , ('\276','\276')
2098    , ('\278','\278')
2099    , ('\280','\280')
2100    , ('\282','\282')
2101    , ('\284','\284')
2102    , ('\286','\286')
2103    , ('\288','\288')
2104    , ('\290','\290')
2105    , ('\292','\292')
2106    , ('\294','\294')
2107    , ('\296','\296')
2108    , ('\298','\298')
2109    , ('\300','\300')
2110    , ('\302','\302')
2111    , ('\304','\304')
2112    , ('\306','\306')
2113    , ('\308','\308')
2114    , ('\310','\310')
2115    , ('\313','\313')
2116    , ('\315','\315')
2117    , ('\317','\317')
2118    , ('\319','\319')
2119    , ('\321','\321')
2120    , ('\323','\323')
2121    , ('\325','\325')
2122    , ('\327','\327')
2123    , ('\330','\330')
2124    , ('\332','\332')
2125    , ('\334','\334')
2126    , ('\336','\336')
2127    , ('\338','\338')
2128    , ('\340','\340')
2129    , ('\342','\342')
2130    , ('\344','\344')
2131    , ('\346','\346')
2132    , ('\348','\348')
2133    , ('\350','\350')
2134    , ('\352','\352')
2135    , ('\354','\354')
2136    , ('\356','\356')
2137    , ('\358','\358')
2138    , ('\360','\360')
2139    , ('\362','\362')
2140    , ('\364','\364')
2141    , ('\366','\366')
2142    , ('\368','\368')
2143    , ('\370','\370')
2144    , ('\372','\372')
2145    , ('\374','\374')
2146    , ('\376','\377')
2147    , ('\379','\379')
2148    , ('\381','\381')
2149    , ('\385','\386')
2150    , ('\388','\388')
2151    , ('\390','\391')
2152    , ('\393','\395')
2153    , ('\398','\401')
2154    , ('\403','\404')
2155    , ('\406','\408')
2156    , ('\412','\413')
2157    , ('\415','\416')
2158    , ('\418','\418')
2159    , ('\420','\420')
2160    , ('\422','\423')
2161    , ('\425','\425')
2162    , ('\428','\428')
2163    , ('\430','\431')
2164    , ('\433','\435')
2165    , ('\437','\437')
2166    , ('\439','\440')
2167    , ('\444','\444')
2168    , ('\452','\452')
2169    , ('\455','\455')
2170    , ('\458','\458')
2171    , ('\461','\461')
2172    , ('\463','\463')
2173    , ('\465','\465')
2174    , ('\467','\467')
2175    , ('\469','\469')
2176    , ('\471','\471')
2177    , ('\473','\473')
2178    , ('\475','\475')
2179    , ('\478','\478')
2180    , ('\480','\480')
2181    , ('\482','\482')
2182    , ('\484','\484')
2183    , ('\486','\486')
2184    , ('\488','\488')
2185    , ('\490','\490')
2186    , ('\492','\492')
2187    , ('\494','\494')
2188    , ('\497','\497')
2189    , ('\500','\500')
2190    , ('\502','\504')
2191    , ('\506','\506')
2192    , ('\508','\508')
2193    , ('\510','\510')
2194    , ('\512','\512')
2195    , ('\514','\514')
2196    , ('\516','\516')
2197    , ('\518','\518')
2198    , ('\520','\520')
2199    , ('\522','\522')
2200    , ('\524','\524')
2201    , ('\526','\526')
2202    , ('\528','\528')
2203    , ('\530','\530')
2204    , ('\532','\532')
2205    , ('\534','\534')
2206    , ('\536','\536')
2207    , ('\538','\538')
2208    , ('\540','\540')
2209    , ('\542','\542')
2210    , ('\544','\544')
2211    , ('\546','\546')
2212    , ('\548','\548')
2213    , ('\550','\550')
2214    , ('\552','\552')
2215    , ('\554','\554')
2216    , ('\556','\556')
2217    , ('\558','\558')
2218    , ('\560','\560')
2219    , ('\562','\562')
2220    , ('\570','\571')
2221    , ('\573','\574')
2222    , ('\577','\577')
2223    , ('\579','\582')
2224    , ('\584','\584')
2225    , ('\586','\586')
2226    , ('\588','\588')
2227    , ('\590','\590')
2228    , ('\880','\880')
2229    , ('\882','\882')
2230    , ('\886','\886')
2231    , ('\895','\895')
2232    , ('\902','\902')
2233    , ('\904','\906')
2234    , ('\908','\908')
2235    , ('\910','\911')
2236    , ('\913','\929')
2237    , ('\931','\939')
2238    , ('\975','\975')
2239    , ('\978','\980')
2240    , ('\984','\984')
2241    , ('\986','\986')
2242    , ('\988','\988')
2243    , ('\990','\990')
2244    , ('\992','\992')
2245    , ('\994','\994')
2246    , ('\996','\996')
2247    , ('\998','\998')
2248    , ('\1000','\1000')
2249    , ('\1002','\1002')
2250    , ('\1004','\1004')
2251    , ('\1006','\1006')
2252    , ('\1012','\1012')
2253    , ('\1015','\1015')
2254    , ('\1017','\1018')
2255    , ('\1021','\1071')
2256    , ('\1120','\1120')
2257    , ('\1122','\1122')
2258    , ('\1124','\1124')
2259    , ('\1126','\1126')
2260    , ('\1128','\1128')
2261    , ('\1130','\1130')
2262    , ('\1132','\1132')
2263    , ('\1134','\1134')
2264    , ('\1136','\1136')
2265    , ('\1138','\1138')
2266    , ('\1140','\1140')
2267    , ('\1142','\1142')
2268    , ('\1144','\1144')
2269    , ('\1146','\1146')
2270    , ('\1148','\1148')
2271    , ('\1150','\1150')
2272    , ('\1152','\1152')
2273    , ('\1162','\1162')
2274    , ('\1164','\1164')
2275    , ('\1166','\1166')
2276    , ('\1168','\1168')
2277    , ('\1170','\1170')
2278    , ('\1172','\1172')
2279    , ('\1174','\1174')
2280    , ('\1176','\1176')
2281    , ('\1178','\1178')
2282    , ('\1180','\1180')
2283    , ('\1182','\1182')
2284    , ('\1184','\1184')
2285    , ('\1186','\1186')
2286    , ('\1188','\1188')
2287    , ('\1190','\1190')
2288    , ('\1192','\1192')
2289    , ('\1194','\1194')
2290    , ('\1196','\1196')
2291    , ('\1198','\1198')
2292    , ('\1200','\1200')
2293    , ('\1202','\1202')
2294    , ('\1204','\1204')
2295    , ('\1206','\1206')
2296    , ('\1208','\1208')
2297    , ('\1210','\1210')
2298    , ('\1212','\1212')
2299    , ('\1214','\1214')
2300    , ('\1216','\1217')
2301    , ('\1219','\1219')
2302    , ('\1221','\1221')
2303    , ('\1223','\1223')
2304    , ('\1225','\1225')
2305    , ('\1227','\1227')
2306    , ('\1229','\1229')
2307    , ('\1232','\1232')
2308    , ('\1234','\1234')
2309    , ('\1236','\1236')
2310    , ('\1238','\1238')
2311    , ('\1240','\1240')
2312    , ('\1242','\1242')
2313    , ('\1244','\1244')
2314    , ('\1246','\1246')
2315    , ('\1248','\1248')
2316    , ('\1250','\1250')
2317    , ('\1252','\1252')
2318    , ('\1254','\1254')
2319    , ('\1256','\1256')
2320    , ('\1258','\1258')
2321    , ('\1260','\1260')
2322    , ('\1262','\1262')
2323    , ('\1264','\1264')
2324    , ('\1266','\1266')
2325    , ('\1268','\1268')
2326    , ('\1270','\1270')
2327    , ('\1272','\1272')
2328    , ('\1274','\1274')
2329    , ('\1276','\1276')
2330    , ('\1278','\1278')
2331    , ('\1280','\1280')
2332    , ('\1282','\1282')
2333    , ('\1284','\1284')
2334    , ('\1286','\1286')
2335    , ('\1288','\1288')
2336    , ('\1290','\1290')
2337    , ('\1292','\1292')
2338    , ('\1294','\1294')
2339    , ('\1296','\1296')
2340    , ('\1298','\1298')
2341    , ('\1300','\1300')
2342    , ('\1302','\1302')
2343    , ('\1304','\1304')
2344    , ('\1306','\1306')
2345    , ('\1308','\1308')
2346    , ('\1310','\1310')
2347    , ('\1312','\1312')
2348    , ('\1314','\1314')
2349    , ('\1316','\1316')
2350    , ('\1318','\1318')
2351    , ('\1320','\1320')
2352    , ('\1322','\1322')
2353    , ('\1324','\1324')
2354    , ('\1326','\1326')
2355    , ('\1329','\1366')
2356    , ('\4256','\4293')
2357    , ('\4295','\4295')
2358    , ('\4301','\4301')
2359    , ('\5024','\5109')
2360    , ('\7312','\7354')
2361    , ('\7357','\7359')
2362    , ('\7680','\7680')
2363    , ('\7682','\7682')
2364    , ('\7684','\7684')
2365    , ('\7686','\7686')
2366    , ('\7688','\7688')
2367    , ('\7690','\7690')
2368    , ('\7692','\7692')
2369    , ('\7694','\7694')
2370    , ('\7696','\7696')
2371    , ('\7698','\7698')
2372    , ('\7700','\7700')
2373    , ('\7702','\7702')
2374    , ('\7704','\7704')
2375    , ('\7706','\7706')
2376    , ('\7708','\7708')
2377    , ('\7710','\7710')
2378    , ('\7712','\7712')
2379    , ('\7714','\7714')
2380    , ('\7716','\7716')
2381    , ('\7718','\7718')
2382    , ('\7720','\7720')
2383    , ('\7722','\7722')
2384    , ('\7724','\7724')
2385    , ('\7726','\7726')
2386    , ('\7728','\7728')
2387    , ('\7730','\7730')
2388    , ('\7732','\7732')
2389    , ('\7734','\7734')
2390    , ('\7736','\7736')
2391    , ('\7738','\7738')
2392    , ('\7740','\7740')
2393    , ('\7742','\7742')
2394    , ('\7744','\7744')
2395    , ('\7746','\7746')
2396    , ('\7748','\7748')
2397    , ('\7750','\7750')
2398    , ('\7752','\7752')
2399    , ('\7754','\7754')
2400    , ('\7756','\7756')
2401    , ('\7758','\7758')
2402    , ('\7760','\7760')
2403    , ('\7762','\7762')
2404    , ('\7764','\7764')
2405    , ('\7766','\7766')
2406    , ('\7768','\7768')
2407    , ('\7770','\7770')
2408    , ('\7772','\7772')
2409    , ('\7774','\7774')
2410    , ('\7776','\7776')
2411    , ('\7778','\7778')
2412    , ('\7780','\7780')
2413    , ('\7782','\7782')
2414    , ('\7784','\7784')
2415    , ('\7786','\7786')
2416    , ('\7788','\7788')
2417    , ('\7790','\7790')
2418    , ('\7792','\7792')
2419    , ('\7794','\7794')
2420    , ('\7796','\7796')
2421    , ('\7798','\7798')
2422    , ('\7800','\7800')
2423    , ('\7802','\7802')
2424    , ('\7804','\7804')
2425    , ('\7806','\7806')
2426    , ('\7808','\7808')
2427    , ('\7810','\7810')
2428    , ('\7812','\7812')
2429    , ('\7814','\7814')
2430    , ('\7816','\7816')
2431    , ('\7818','\7818')
2432    , ('\7820','\7820')
2433    , ('\7822','\7822')
2434    , ('\7824','\7824')
2435    , ('\7826','\7826')
2436    , ('\7828','\7828')
2437    , ('\7838','\7838')
2438    , ('\7840','\7840')
2439    , ('\7842','\7842')
2440    , ('\7844','\7844')
2441    , ('\7846','\7846')
2442    , ('\7848','\7848')
2443    , ('\7850','\7850')
2444    , ('\7852','\7852')
2445    , ('\7854','\7854')
2446    , ('\7856','\7856')
2447    , ('\7858','\7858')
2448    , ('\7860','\7860')
2449    , ('\7862','\7862')
2450    , ('\7864','\7864')
2451    , ('\7866','\7866')
2452    , ('\7868','\7868')
2453    , ('\7870','\7870')
2454    , ('\7872','\7872')
2455    , ('\7874','\7874')
2456    , ('\7876','\7876')
2457    , ('\7878','\7878')
2458    , ('\7880','\7880')
2459    , ('\7882','\7882')
2460    , ('\7884','\7884')
2461    , ('\7886','\7886')
2462    , ('\7888','\7888')
2463    , ('\7890','\7890')
2464    , ('\7892','\7892')
2465    , ('\7894','\7894')
2466    , ('\7896','\7896')
2467    , ('\7898','\7898')
2468    , ('\7900','\7900')
2469    , ('\7902','\7902')
2470    , ('\7904','\7904')
2471    , ('\7906','\7906')
2472    , ('\7908','\7908')
2473    , ('\7910','\7910')
2474    , ('\7912','\7912')
2475    , ('\7914','\7914')
2476    , ('\7916','\7916')
2477    , ('\7918','\7918')
2478    , ('\7920','\7920')
2479    , ('\7922','\7922')
2480    , ('\7924','\7924')
2481    , ('\7926','\7926')
2482    , ('\7928','\7928')
2483    , ('\7930','\7930')
2484    , ('\7932','\7932')
2485    , ('\7934','\7934')
2486    , ('\7944','\7951')
2487    , ('\7960','\7965')
2488    , ('\7976','\7983')
2489    , ('\7992','\7999')
2490    , ('\8008','\8013')
2491    , ('\8025','\8025')
2492    , ('\8027','\8027')
2493    , ('\8029','\8029')
2494    , ('\8031','\8031')
2495    , ('\8040','\8047')
2496    , ('\8120','\8123')
2497    , ('\8136','\8139')
2498    , ('\8152','\8155')
2499    , ('\8168','\8172')
2500    , ('\8184','\8187')
2501    , ('\8450','\8450')
2502    , ('\8455','\8455')
2503    , ('\8459','\8461')
2504    , ('\8464','\8466')
2505    , ('\8469','\8469')
2506    , ('\8473','\8477')
2507    , ('\8484','\8484')
2508    , ('\8486','\8486')
2509    , ('\8488','\8488')
2510    , ('\8490','\8493')
2511    , ('\8496','\8499')
2512    , ('\8510','\8511')
2513    , ('\8517','\8517')
2514    , ('\8579','\8579')
2515    , ('\11264','\11310')
2516    , ('\11360','\11360')
2517    , ('\11362','\11364')
2518    , ('\11367','\11367')
2519    , ('\11369','\11369')
2520    , ('\11371','\11371')
2521    , ('\11373','\11376')
2522    , ('\11378','\11378')
2523    , ('\11381','\11381')
2524    , ('\11390','\11392')
2525    , ('\11394','\11394')
2526    , ('\11396','\11396')
2527    , ('\11398','\11398')
2528    , ('\11400','\11400')
2529    , ('\11402','\11402')
2530    , ('\11404','\11404')
2531    , ('\11406','\11406')
2532    , ('\11408','\11408')
2533    , ('\11410','\11410')
2534    , ('\11412','\11412')
2535    , ('\11414','\11414')
2536    , ('\11416','\11416')
2537    , ('\11418','\11418')
2538    , ('\11420','\11420')
2539    , ('\11422','\11422')
2540    , ('\11424','\11424')
2541    , ('\11426','\11426')
2542    , ('\11428','\11428')
2543    , ('\11430','\11430')
2544    , ('\11432','\11432')
2545    , ('\11434','\11434')
2546    , ('\11436','\11436')
2547    , ('\11438','\11438')
2548    , ('\11440','\11440')
2549    , ('\11442','\11442')
2550    , ('\11444','\11444')
2551    , ('\11446','\11446')
2552    , ('\11448','\11448')
2553    , ('\11450','\11450')
2554    , ('\11452','\11452')
2555    , ('\11454','\11454')
2556    , ('\11456','\11456')
2557    , ('\11458','\11458')
2558    , ('\11460','\11460')
2559    , ('\11462','\11462')
2560    , ('\11464','\11464')
2561    , ('\11466','\11466')
2562    , ('\11468','\11468')
2563    , ('\11470','\11470')
2564    , ('\11472','\11472')
2565    , ('\11474','\11474')
2566    , ('\11476','\11476')
2567    , ('\11478','\11478')
2568    , ('\11480','\11480')
2569    , ('\11482','\11482')
2570    , ('\11484','\11484')
2571    , ('\11486','\11486')
2572    , ('\11488','\11488')
2573    , ('\11490','\11490')
2574    , ('\11499','\11499')
2575    , ('\11501','\11501')
2576    , ('\11506','\11506')
2577    , ('\42560','\42560')
2578    , ('\42562','\42562')
2579    , ('\42564','\42564')
2580    , ('\42566','\42566')
2581    , ('\42568','\42568')
2582    , ('\42570','\42570')
2583    , ('\42572','\42572')
2584    , ('\42574','\42574')
2585    , ('\42576','\42576')
2586    , ('\42578','\42578')
2587    , ('\42580','\42580')
2588    , ('\42582','\42582')
2589    , ('\42584','\42584')
2590    , ('\42586','\42586')
2591    , ('\42588','\42588')
2592    , ('\42590','\42590')
2593    , ('\42592','\42592')
2594    , ('\42594','\42594')
2595    , ('\42596','\42596')
2596    , ('\42598','\42598')
2597    , ('\42600','\42600')
2598    , ('\42602','\42602')
2599    , ('\42604','\42604')
2600    , ('\42624','\42624')
2601    , ('\42626','\42626')
2602    , ('\42628','\42628')
2603    , ('\42630','\42630')
2604    , ('\42632','\42632')
2605    , ('\42634','\42634')
2606    , ('\42636','\42636')
2607    , ('\42638','\42638')
2608    , ('\42640','\42640')
2609    , ('\42642','\42642')
2610    , ('\42644','\42644')
2611    , ('\42646','\42646')
2612    , ('\42648','\42648')
2613    , ('\42650','\42650')
2614    , ('\42786','\42786')
2615    , ('\42788','\42788')
2616    , ('\42790','\42790')
2617    , ('\42792','\42792')
2618    , ('\42794','\42794')
2619    , ('\42796','\42796')
2620    , ('\42798','\42798')
2621    , ('\42802','\42802')
2622    , ('\42804','\42804')
2623    , ('\42806','\42806')
2624    , ('\42808','\42808')
2625    , ('\42810','\42810')
2626    , ('\42812','\42812')
2627    , ('\42814','\42814')
2628    , ('\42816','\42816')
2629    , ('\42818','\42818')
2630    , ('\42820','\42820')
2631    , ('\42822','\42822')
2632    , ('\42824','\42824')
2633    , ('\42826','\42826')
2634    , ('\42828','\42828')
2635    , ('\42830','\42830')
2636    , ('\42832','\42832')
2637    , ('\42834','\42834')
2638    , ('\42836','\42836')
2639    , ('\42838','\42838')
2640    , ('\42840','\42840')
2641    , ('\42842','\42842')
2642    , ('\42844','\42844')
2643    , ('\42846','\42846')
2644    , ('\42848','\42848')
2645    , ('\42850','\42850')
2646    , ('\42852','\42852')
2647    , ('\42854','\42854')
2648    , ('\42856','\42856')
2649    , ('\42858','\42858')
2650    , ('\42860','\42860')
2651    , ('\42862','\42862')
2652    , ('\42873','\42873')
2653    , ('\42875','\42875')
2654    , ('\42877','\42878')
2655    , ('\42880','\42880')
2656    , ('\42882','\42882')
2657    , ('\42884','\42884')
2658    , ('\42886','\42886')
2659    , ('\42891','\42891')
2660    , ('\42893','\42893')
2661    , ('\42896','\42896')
2662    , ('\42898','\42898')
2663    , ('\42902','\42902')
2664    , ('\42904','\42904')
2665    , ('\42906','\42906')
2666    , ('\42908','\42908')
2667    , ('\42910','\42910')
2668    , ('\42912','\42912')
2669    , ('\42914','\42914')
2670    , ('\42916','\42916')
2671    , ('\42918','\42918')
2672    , ('\42920','\42920')
2673    , ('\42922','\42926')
2674    , ('\42928','\42932')
2675    , ('\42934','\42934')
2676    , ('\42936','\42936')
2677    , ('\42938','\42938')
2678    , ('\42940','\42940')
2679    , ('\42942','\42942')
2680    , ('\42946','\42946')
2681    , ('\42948','\42950')
2682    , ('\65313','\65338')
2683    , ('\66560','\66599')
2684    , ('\66736','\66771')
2685    , ('\68736','\68786')
2686    , ('\71840','\71871')
2687    , ('\93760','\93791')
2688    , ('\119808','\119833')
2689    , ('\119860','\119885')
2690    , ('\119912','\119937')
2691    , ('\119964','\119964')
2692    , ('\119966','\119967')
2693    , ('\119970','\119970')
2694    , ('\119973','\119974')
2695    , ('\119977','\119980')
2696    , ('\119982','\119989')
2697    , ('\120016','\120041')
2698    , ('\120068','\120069')
2699    , ('\120071','\120074')
2700    , ('\120077','\120084')
2701    , ('\120086','\120092')
2702    , ('\120120','\120121')
2703    , ('\120123','\120126')
2704    , ('\120128','\120132')
2705    , ('\120134','\120134')
2706    , ('\120138','\120144')
2707    , ('\120172','\120197')
2708    , ('\120224','\120249')
2709    , ('\120276','\120301')
2710    , ('\120328','\120353')
2711    , ('\120380','\120405')
2712    , ('\120432','\120457')
2713    , ('\120488','\120512')
2714    , ('\120546','\120570')
2715    , ('\120604','\120628')
2716    , ('\120662','\120686')
2717    , ('\120720','\120744')
2718    , ('\120778','\120778')
2719    , ('\125184','\125217')
2720    ]
2721
2722-- ------------------------------------------------------------
2723
2724isUnicodeM :: Char -> Bool
2725isUnicodeM c
2726  = elemCS c charPropUnicodeM
2727
2728charPropUnicodeM :: CharSet
2729charPropUnicodeM
2730  = [ ('\768','\879')
2731    , ('\1155','\1161')
2732    , ('\1425','\1469')
2733    , ('\1471','\1471')
2734    , ('\1473','\1474')
2735    , ('\1476','\1477')
2736    , ('\1479','\1479')
2737    , ('\1552','\1562')
2738    , ('\1611','\1631')
2739    , ('\1648','\1648')
2740    , ('\1750','\1756')
2741    , ('\1759','\1764')
2742    , ('\1767','\1768')
2743    , ('\1770','\1773')
2744    , ('\1809','\1809')
2745    , ('\1840','\1866')
2746    , ('\1958','\1968')
2747    , ('\2027','\2035')
2748    , ('\2045','\2045')
2749    , ('\2070','\2073')
2750    , ('\2075','\2083')
2751    , ('\2085','\2087')
2752    , ('\2089','\2093')
2753    , ('\2137','\2139')
2754    , ('\2259','\2273')
2755    , ('\2275','\2307')
2756    , ('\2362','\2364')
2757    , ('\2366','\2383')
2758    , ('\2385','\2391')
2759    , ('\2402','\2403')
2760    , ('\2433','\2435')
2761    , ('\2492','\2492')
2762    , ('\2494','\2500')
2763    , ('\2503','\2504')
2764    , ('\2507','\2509')
2765    , ('\2519','\2519')
2766    , ('\2530','\2531')
2767    , ('\2558','\2558')
2768    , ('\2561','\2563')
2769    , ('\2620','\2620')
2770    , ('\2622','\2626')
2771    , ('\2631','\2632')
2772    , ('\2635','\2637')
2773    , ('\2641','\2641')
2774    , ('\2672','\2673')
2775    , ('\2677','\2677')
2776    , ('\2689','\2691')
2777    , ('\2748','\2748')
2778    , ('\2750','\2757')
2779    , ('\2759','\2761')
2780    , ('\2763','\2765')
2781    , ('\2786','\2787')
2782    , ('\2810','\2815')
2783    , ('\2817','\2819')
2784    , ('\2876','\2876')
2785    , ('\2878','\2884')
2786    , ('\2887','\2888')
2787    , ('\2891','\2893')
2788    , ('\2902','\2903')
2789    , ('\2914','\2915')
2790    , ('\2946','\2946')
2791    , ('\3006','\3010')
2792    , ('\3014','\3016')
2793    , ('\3018','\3021')
2794    , ('\3031','\3031')
2795    , ('\3072','\3076')
2796    , ('\3134','\3140')
2797    , ('\3142','\3144')
2798    , ('\3146','\3149')
2799    , ('\3157','\3158')
2800    , ('\3170','\3171')
2801    , ('\3201','\3203')
2802    , ('\3260','\3260')
2803    , ('\3262','\3268')
2804    , ('\3270','\3272')
2805    , ('\3274','\3277')
2806    , ('\3285','\3286')
2807    , ('\3298','\3299')
2808    , ('\3328','\3331')
2809    , ('\3387','\3388')
2810    , ('\3390','\3396')
2811    , ('\3398','\3400')
2812    , ('\3402','\3405')
2813    , ('\3415','\3415')
2814    , ('\3426','\3427')
2815    , ('\3458','\3459')
2816    , ('\3530','\3530')
2817    , ('\3535','\3540')
2818    , ('\3542','\3542')
2819    , ('\3544','\3551')
2820    , ('\3570','\3571')
2821    , ('\3633','\3633')
2822    , ('\3636','\3642')
2823    , ('\3655','\3662')
2824    , ('\3761','\3761')
2825    , ('\3764','\3772')
2826    , ('\3784','\3789')
2827    , ('\3864','\3865')
2828    , ('\3893','\3893')
2829    , ('\3895','\3895')
2830    , ('\3897','\3897')
2831    , ('\3902','\3903')
2832    , ('\3953','\3972')
2833    , ('\3974','\3975')
2834    , ('\3981','\3991')
2835    , ('\3993','\4028')
2836    , ('\4038','\4038')
2837    , ('\4139','\4158')
2838    , ('\4182','\4185')
2839    , ('\4190','\4192')
2840    , ('\4194','\4196')
2841    , ('\4199','\4205')
2842    , ('\4209','\4212')
2843    , ('\4226','\4237')
2844    , ('\4239','\4239')
2845    , ('\4250','\4253')
2846    , ('\4957','\4959')
2847    , ('\5906','\5908')
2848    , ('\5938','\5940')
2849    , ('\5970','\5971')
2850    , ('\6002','\6003')
2851    , ('\6068','\6099')
2852    , ('\6109','\6109')
2853    , ('\6155','\6157')
2854    , ('\6277','\6278')
2855    , ('\6313','\6313')
2856    , ('\6432','\6443')
2857    , ('\6448','\6459')
2858    , ('\6679','\6683')
2859    , ('\6741','\6750')
2860    , ('\6752','\6780')
2861    , ('\6783','\6783')
2862    , ('\6832','\6846')
2863    , ('\6912','\6916')
2864    , ('\6964','\6980')
2865    , ('\7019','\7027')
2866    , ('\7040','\7042')
2867    , ('\7073','\7085')
2868    , ('\7142','\7155')
2869    , ('\7204','\7223')
2870    , ('\7376','\7378')
2871    , ('\7380','\7400')
2872    , ('\7405','\7405')
2873    , ('\7412','\7412')
2874    , ('\7415','\7417')
2875    , ('\7616','\7673')
2876    , ('\7675','\7679')
2877    , ('\8400','\8432')
2878    , ('\11503','\11505')
2879    , ('\11647','\11647')
2880    , ('\11744','\11775')
2881    , ('\12330','\12335')
2882    , ('\12441','\12442')
2883    , ('\42607','\42610')
2884    , ('\42612','\42621')
2885    , ('\42654','\42655')
2886    , ('\42736','\42737')
2887    , ('\43010','\43010')
2888    , ('\43014','\43014')
2889    , ('\43019','\43019')
2890    , ('\43043','\43047')
2891    , ('\43136','\43137')
2892    , ('\43188','\43205')
2893    , ('\43232','\43249')
2894    , ('\43263','\43263')
2895    , ('\43302','\43309')
2896    , ('\43335','\43347')
2897    , ('\43392','\43395')
2898    , ('\43443','\43456')
2899    , ('\43493','\43493')
2900    , ('\43561','\43574')
2901    , ('\43587','\43587')
2902    , ('\43596','\43597')
2903    , ('\43643','\43645')
2904    , ('\43696','\43696')
2905    , ('\43698','\43700')
2906    , ('\43703','\43704')
2907    , ('\43710','\43711')
2908    , ('\43713','\43713')
2909    , ('\43755','\43759')
2910    , ('\43765','\43766')
2911    , ('\44003','\44010')
2912    , ('\44012','\44013')
2913    , ('\64286','\64286')
2914    , ('\65024','\65039')
2915    , ('\65056','\65071')
2916    , ('\66045','\66045')
2917    , ('\66272','\66272')
2918    , ('\66422','\66426')
2919    , ('\68097','\68099')
2920    , ('\68101','\68102')
2921    , ('\68108','\68111')
2922    , ('\68152','\68154')
2923    , ('\68159','\68159')
2924    , ('\68325','\68326')
2925    , ('\68900','\68903')
2926    , ('\69446','\69456')
2927    , ('\69632','\69634')
2928    , ('\69688','\69702')
2929    , ('\69759','\69762')
2930    , ('\69808','\69818')
2931    , ('\69888','\69890')
2932    , ('\69927','\69940')
2933    , ('\69957','\69958')
2934    , ('\70003','\70003')
2935    , ('\70016','\70018')
2936    , ('\70067','\70080')
2937    , ('\70089','\70092')
2938    , ('\70188','\70199')
2939    , ('\70206','\70206')
2940    , ('\70367','\70378')
2941    , ('\70400','\70403')
2942    , ('\70459','\70460')
2943    , ('\70462','\70468')
2944    , ('\70471','\70472')
2945    , ('\70475','\70477')
2946    , ('\70487','\70487')
2947    , ('\70498','\70499')
2948    , ('\70502','\70508')
2949    , ('\70512','\70516')
2950    , ('\70709','\70726')
2951    , ('\70750','\70750')
2952    , ('\70832','\70851')
2953    , ('\71087','\71093')
2954    , ('\71096','\71104')
2955    , ('\71132','\71133')
2956    , ('\71216','\71232')
2957    , ('\71339','\71351')
2958    , ('\71453','\71467')
2959    , ('\71724','\71738')
2960    , ('\72145','\72151')
2961    , ('\72154','\72160')
2962    , ('\72164','\72164')
2963    , ('\72193','\72202')
2964    , ('\72243','\72249')
2965    , ('\72251','\72254')
2966    , ('\72263','\72263')
2967    , ('\72273','\72283')
2968    , ('\72330','\72345')
2969    , ('\72751','\72758')
2970    , ('\72760','\72767')
2971    , ('\72850','\72871')
2972    , ('\72873','\72886')
2973    , ('\73009','\73014')
2974    , ('\73018','\73018')
2975    , ('\73020','\73021')
2976    , ('\73023','\73029')
2977    , ('\73031','\73031')
2978    , ('\73098','\73102')
2979    , ('\73104','\73105')
2980    , ('\73107','\73111')
2981    , ('\73459','\73462')
2982    , ('\92912','\92916')
2983    , ('\92976','\92982')
2984    , ('\94031','\94031')
2985    , ('\94033','\94087')
2986    , ('\94095','\94098')
2987    , ('\113821','\113822')
2988    , ('\119141','\119145')
2989    , ('\119149','\119154')
2990    , ('\119163','\119170')
2991    , ('\119173','\119179')
2992    , ('\119210','\119213')
2993    , ('\119362','\119364')
2994    , ('\121344','\121398')
2995    , ('\121403','\121452')
2996    , ('\121461','\121461')
2997    , ('\121476','\121476')
2998    , ('\121499','\121503')
2999    , ('\121505','\121519')
3000    , ('\122880','\122886')
3001    , ('\122888','\122904')
3002    , ('\122907','\122913')
3003    , ('\122915','\122916')
3004    , ('\122918','\122922')
3005    , ('\123184','\123190')
3006    , ('\123628','\123631')
3007    , ('\125136','\125142')
3008    , ('\125252','\125258')
3009    , ('\917760','\917999')
3010    ]
3011
3012-- ------------------------------------------------------------
3013
3014isUnicodeMc :: Char -> Bool
3015isUnicodeMc c
3016  = elemCS c charPropUnicodeMc
3017
3018charPropUnicodeMc :: CharSet
3019charPropUnicodeMc
3020  = [ ('\2307','\2307')
3021    , ('\2363','\2363')
3022    , ('\2366','\2368')
3023    , ('\2377','\2380')
3024    , ('\2382','\2383')
3025    , ('\2434','\2435')
3026    , ('\2494','\2496')
3027    , ('\2503','\2504')
3028    , ('\2507','\2508')
3029    , ('\2519','\2519')
3030    , ('\2563','\2563')
3031    , ('\2622','\2624')
3032    , ('\2691','\2691')
3033    , ('\2750','\2752')
3034    , ('\2761','\2761')
3035    , ('\2763','\2764')
3036    , ('\2818','\2819')
3037    , ('\2878','\2878')
3038    , ('\2880','\2880')
3039    , ('\2887','\2888')
3040    , ('\2891','\2892')
3041    , ('\2903','\2903')
3042    , ('\3006','\3007')
3043    , ('\3009','\3010')
3044    , ('\3014','\3016')
3045    , ('\3018','\3020')
3046    , ('\3031','\3031')
3047    , ('\3073','\3075')
3048    , ('\3137','\3140')
3049    , ('\3202','\3203')
3050    , ('\3262','\3262')
3051    , ('\3264','\3268')
3052    , ('\3271','\3272')
3053    , ('\3274','\3275')
3054    , ('\3285','\3286')
3055    , ('\3330','\3331')
3056    , ('\3390','\3392')
3057    , ('\3398','\3400')
3058    , ('\3402','\3404')
3059    , ('\3415','\3415')
3060    , ('\3458','\3459')
3061    , ('\3535','\3537')
3062    , ('\3544','\3551')
3063    , ('\3570','\3571')
3064    , ('\3902','\3903')
3065    , ('\3967','\3967')
3066    , ('\4139','\4140')
3067    , ('\4145','\4145')
3068    , ('\4152','\4152')
3069    , ('\4155','\4156')
3070    , ('\4182','\4183')
3071    , ('\4194','\4196')
3072    , ('\4199','\4205')
3073    , ('\4227','\4228')
3074    , ('\4231','\4236')
3075    , ('\4239','\4239')
3076    , ('\4250','\4252')
3077    , ('\6070','\6070')
3078    , ('\6078','\6085')
3079    , ('\6087','\6088')
3080    , ('\6435','\6438')
3081    , ('\6441','\6443')
3082    , ('\6448','\6449')
3083    , ('\6451','\6456')
3084    , ('\6681','\6682')
3085    , ('\6741','\6741')
3086    , ('\6743','\6743')
3087    , ('\6753','\6753')
3088    , ('\6755','\6756')
3089    , ('\6765','\6770')
3090    , ('\6916','\6916')
3091    , ('\6965','\6965')
3092    , ('\6971','\6971')
3093    , ('\6973','\6977')
3094    , ('\6979','\6980')
3095    , ('\7042','\7042')
3096    , ('\7073','\7073')
3097    , ('\7078','\7079')
3098    , ('\7082','\7082')
3099    , ('\7143','\7143')
3100    , ('\7146','\7148')
3101    , ('\7150','\7150')
3102    , ('\7154','\7155')
3103    , ('\7204','\7211')
3104    , ('\7220','\7221')
3105    , ('\7393','\7393')
3106    , ('\7415','\7415')
3107    , ('\12334','\12335')
3108    , ('\43043','\43044')
3109    , ('\43047','\43047')
3110    , ('\43136','\43137')
3111    , ('\43188','\43203')
3112    , ('\43346','\43347')
3113    , ('\43395','\43395')
3114    , ('\43444','\43445')
3115    , ('\43450','\43451')
3116    , ('\43454','\43456')
3117    , ('\43567','\43568')
3118    , ('\43571','\43572')
3119    , ('\43597','\43597')
3120    , ('\43643','\43643')
3121    , ('\43645','\43645')
3122    , ('\43755','\43755')
3123    , ('\43758','\43759')
3124    , ('\43765','\43765')
3125    , ('\44003','\44004')
3126    , ('\44006','\44007')
3127    , ('\44009','\44010')
3128    , ('\44012','\44012')
3129    , ('\69632','\69632')
3130    , ('\69634','\69634')
3131    , ('\69762','\69762')
3132    , ('\69808','\69810')
3133    , ('\69815','\69816')
3134    , ('\69932','\69932')
3135    , ('\69957','\69958')
3136    , ('\70018','\70018')
3137    , ('\70067','\70069')
3138    , ('\70079','\70080')
3139    , ('\70188','\70190')
3140    , ('\70194','\70195')
3141    , ('\70197','\70197')
3142    , ('\70368','\70370')
3143    , ('\70402','\70403')
3144    , ('\70462','\70463')
3145    , ('\70465','\70468')
3146    , ('\70471','\70472')
3147    , ('\70475','\70477')
3148    , ('\70487','\70487')
3149    , ('\70498','\70499')
3150    , ('\70709','\70711')
3151    , ('\70720','\70721')
3152    , ('\70725','\70725')
3153    , ('\70832','\70834')
3154    , ('\70841','\70841')
3155    , ('\70843','\70846')
3156    , ('\70849','\70849')
3157    , ('\71087','\71089')
3158    , ('\71096','\71099')
3159    , ('\71102','\71102')
3160    , ('\71216','\71218')
3161    , ('\71227','\71228')
3162    , ('\71230','\71230')
3163    , ('\71340','\71340')
3164    , ('\71342','\71343')
3165    , ('\71350','\71350')
3166    , ('\71456','\71457')
3167    , ('\71462','\71462')
3168    , ('\71724','\71726')
3169    , ('\71736','\71736')
3170    , ('\72145','\72147')
3171    , ('\72156','\72159')
3172    , ('\72164','\72164')
3173    , ('\72249','\72249')
3174    , ('\72279','\72280')
3175    , ('\72343','\72343')
3176    , ('\72751','\72751')
3177    , ('\72766','\72766')
3178    , ('\72873','\72873')
3179    , ('\72881','\72881')
3180    , ('\72884','\72884')
3181    , ('\73098','\73102')
3182    , ('\73107','\73108')
3183    , ('\73110','\73110')
3184    , ('\73461','\73462')
3185    , ('\94033','\94087')
3186    , ('\119141','\119142')
3187    , ('\119149','\119154')
3188    ]
3189
3190-- ------------------------------------------------------------
3191
3192isUnicodeMe :: Char -> Bool
3193isUnicodeMe c
3194  = elemCS c charPropUnicodeMe
3195
3196charPropUnicodeMe :: CharSet
3197charPropUnicodeMe
3198  = [ ('\1160','\1161')
3199    , ('\6846','\6846')
3200    , ('\8413','\8416')
3201    , ('\8418','\8420')
3202    , ('\42608','\42610')
3203    ]
3204
3205-- ------------------------------------------------------------
3206
3207isUnicodeMn :: Char -> Bool
3208isUnicodeMn c
3209  = elemCS c charPropUnicodeMn
3210
3211charPropUnicodeMn :: CharSet
3212charPropUnicodeMn
3213  = [ ('\768','\879')
3214    , ('\1155','\1159')
3215    , ('\1425','\1469')
3216    , ('\1471','\1471')
3217    , ('\1473','\1474')
3218    , ('\1476','\1477')
3219    , ('\1479','\1479')
3220    , ('\1552','\1562')
3221    , ('\1611','\1631')
3222    , ('\1648','\1648')
3223    , ('\1750','\1756')
3224    , ('\1759','\1764')
3225    , ('\1767','\1768')
3226    , ('\1770','\1773')
3227    , ('\1809','\1809')
3228    , ('\1840','\1866')
3229    , ('\1958','\1968')
3230    , ('\2027','\2035')
3231    , ('\2045','\2045')
3232    , ('\2070','\2073')
3233    , ('\2075','\2083')
3234    , ('\2085','\2087')
3235    , ('\2089','\2093')
3236    , ('\2137','\2139')
3237    , ('\2259','\2273')
3238    , ('\2275','\2306')
3239    , ('\2362','\2362')
3240    , ('\2364','\2364')
3241    , ('\2369','\2376')
3242    , ('\2381','\2381')
3243    , ('\2385','\2391')
3244    , ('\2402','\2403')
3245    , ('\2433','\2433')
3246    , ('\2492','\2492')
3247    , ('\2497','\2500')
3248    , ('\2509','\2509')
3249    , ('\2530','\2531')
3250    , ('\2558','\2558')
3251    , ('\2561','\2562')
3252    , ('\2620','\2620')
3253    , ('\2625','\2626')
3254    , ('\2631','\2632')
3255    , ('\2635','\2637')
3256    , ('\2641','\2641')
3257    , ('\2672','\2673')
3258    , ('\2677','\2677')
3259    , ('\2689','\2690')
3260    , ('\2748','\2748')
3261    , ('\2753','\2757')
3262    , ('\2759','\2760')
3263    , ('\2765','\2765')
3264    , ('\2786','\2787')
3265    , ('\2810','\2815')
3266    , ('\2817','\2817')
3267    , ('\2876','\2876')
3268    , ('\2879','\2879')
3269    , ('\2881','\2884')
3270    , ('\2893','\2893')
3271    , ('\2902','\2902')
3272    , ('\2914','\2915')
3273    , ('\2946','\2946')
3274    , ('\3008','\3008')
3275    , ('\3021','\3021')
3276    , ('\3072','\3072')
3277    , ('\3076','\3076')
3278    , ('\3134','\3136')
3279    , ('\3142','\3144')
3280    , ('\3146','\3149')
3281    , ('\3157','\3158')
3282    , ('\3170','\3171')
3283    , ('\3201','\3201')
3284    , ('\3260','\3260')
3285    , ('\3263','\3263')
3286    , ('\3270','\3270')
3287    , ('\3276','\3277')
3288    , ('\3298','\3299')
3289    , ('\3328','\3329')
3290    , ('\3387','\3388')
3291    , ('\3393','\3396')
3292    , ('\3405','\3405')
3293    , ('\3426','\3427')
3294    , ('\3530','\3530')
3295    , ('\3538','\3540')
3296    , ('\3542','\3542')
3297    , ('\3633','\3633')
3298    , ('\3636','\3642')
3299    , ('\3655','\3662')
3300    , ('\3761','\3761')
3301    , ('\3764','\3772')
3302    , ('\3784','\3789')
3303    , ('\3864','\3865')
3304    , ('\3893','\3893')
3305    , ('\3895','\3895')
3306    , ('\3897','\3897')
3307    , ('\3953','\3966')
3308    , ('\3968','\3972')
3309    , ('\3974','\3975')
3310    , ('\3981','\3991')
3311    , ('\3993','\4028')
3312    , ('\4038','\4038')
3313    , ('\4141','\4144')
3314    , ('\4146','\4151')
3315    , ('\4153','\4154')
3316    , ('\4157','\4158')
3317    , ('\4184','\4185')
3318    , ('\4190','\4192')
3319    , ('\4209','\4212')
3320    , ('\4226','\4226')
3321    , ('\4229','\4230')
3322    , ('\4237','\4237')
3323    , ('\4253','\4253')
3324    , ('\4957','\4959')
3325    , ('\5906','\5908')
3326    , ('\5938','\5940')
3327    , ('\5970','\5971')
3328    , ('\6002','\6003')
3329    , ('\6068','\6069')
3330    , ('\6071','\6077')
3331    , ('\6086','\6086')
3332    , ('\6089','\6099')
3333    , ('\6109','\6109')
3334    , ('\6155','\6157')
3335    , ('\6277','\6278')
3336    , ('\6313','\6313')
3337    , ('\6432','\6434')
3338    , ('\6439','\6440')
3339    , ('\6450','\6450')
3340    , ('\6457','\6459')
3341    , ('\6679','\6680')
3342    , ('\6683','\6683')
3343    , ('\6742','\6742')
3344    , ('\6744','\6750')
3345    , ('\6752','\6752')
3346    , ('\6754','\6754')
3347    , ('\6757','\6764')
3348    , ('\6771','\6780')
3349    , ('\6783','\6783')
3350    , ('\6832','\6845')
3351    , ('\6912','\6915')
3352    , ('\6964','\6964')
3353    , ('\6966','\6970')
3354    , ('\6972','\6972')
3355    , ('\6978','\6978')
3356    , ('\7019','\7027')
3357    , ('\7040','\7041')
3358    , ('\7074','\7077')
3359    , ('\7080','\7081')
3360    , ('\7083','\7085')
3361    , ('\7142','\7142')
3362    , ('\7144','\7145')
3363    , ('\7149','\7149')
3364    , ('\7151','\7153')
3365    , ('\7212','\7219')
3366    , ('\7222','\7223')
3367    , ('\7376','\7378')
3368    , ('\7380','\7392')
3369    , ('\7394','\7400')
3370    , ('\7405','\7405')
3371    , ('\7412','\7412')
3372    , ('\7416','\7417')
3373    , ('\7616','\7673')
3374    , ('\7675','\7679')
3375    , ('\8400','\8412')
3376    , ('\8417','\8417')
3377    , ('\8421','\8432')
3378    , ('\11503','\11505')
3379    , ('\11647','\11647')
3380    , ('\11744','\11775')
3381    , ('\12330','\12333')
3382    , ('\12441','\12442')
3383    , ('\42607','\42607')
3384    , ('\42612','\42621')
3385    , ('\42654','\42655')
3386    , ('\42736','\42737')
3387    , ('\43010','\43010')
3388    , ('\43014','\43014')
3389    , ('\43019','\43019')
3390    , ('\43045','\43046')
3391    , ('\43204','\43205')
3392    , ('\43232','\43249')
3393    , ('\43263','\43263')
3394    , ('\43302','\43309')
3395    , ('\43335','\43345')
3396    , ('\43392','\43394')
3397    , ('\43443','\43443')
3398    , ('\43446','\43449')
3399    , ('\43452','\43453')
3400    , ('\43493','\43493')
3401    , ('\43561','\43566')
3402    , ('\43569','\43570')
3403    , ('\43573','\43574')
3404    , ('\43587','\43587')
3405    , ('\43596','\43596')
3406    , ('\43644','\43644')
3407    , ('\43696','\43696')
3408    , ('\43698','\43700')
3409    , ('\43703','\43704')
3410    , ('\43710','\43711')
3411    , ('\43713','\43713')
3412    , ('\43756','\43757')
3413    , ('\43766','\43766')
3414    , ('\44005','\44005')
3415    , ('\44008','\44008')
3416    , ('\44013','\44013')
3417    , ('\64286','\64286')
3418    , ('\65024','\65039')
3419    , ('\65056','\65071')
3420    , ('\66045','\66045')
3421    , ('\66272','\66272')
3422    , ('\66422','\66426')
3423    , ('\68097','\68099')
3424    , ('\68101','\68102')
3425    , ('\68108','\68111')
3426    , ('\68152','\68154')
3427    , ('\68159','\68159')
3428    , ('\68325','\68326')
3429    , ('\68900','\68903')
3430    , ('\69446','\69456')
3431    , ('\69633','\69633')
3432    , ('\69688','\69702')
3433    , ('\69759','\69761')
3434    , ('\69811','\69814')
3435    , ('\69817','\69818')
3436    , ('\69888','\69890')
3437    , ('\69927','\69931')
3438    , ('\69933','\69940')
3439    , ('\70003','\70003')
3440    , ('\70016','\70017')
3441    , ('\70070','\70078')
3442    , ('\70089','\70092')
3443    , ('\70191','\70193')
3444    , ('\70196','\70196')
3445    , ('\70198','\70199')
3446    , ('\70206','\70206')
3447    , ('\70367','\70367')
3448    , ('\70371','\70378')
3449    , ('\70400','\70401')
3450    , ('\70459','\70460')
3451    , ('\70464','\70464')
3452    , ('\70502','\70508')
3453    , ('\70512','\70516')
3454    , ('\70712','\70719')
3455    , ('\70722','\70724')
3456    , ('\70726','\70726')
3457    , ('\70750','\70750')
3458    , ('\70835','\70840')
3459    , ('\70842','\70842')
3460    , ('\70847','\70848')
3461    , ('\70850','\70851')
3462    , ('\71090','\71093')
3463    , ('\71100','\71101')
3464    , ('\71103','\71104')
3465    , ('\71132','\71133')
3466    , ('\71219','\71226')
3467    , ('\71229','\71229')
3468    , ('\71231','\71232')
3469    , ('\71339','\71339')
3470    , ('\71341','\71341')
3471    , ('\71344','\71349')
3472    , ('\71351','\71351')
3473    , ('\71453','\71455')
3474    , ('\71458','\71461')
3475    , ('\71463','\71467')
3476    , ('\71727','\71735')
3477    , ('\71737','\71738')
3478    , ('\72148','\72151')
3479    , ('\72154','\72155')
3480    , ('\72160','\72160')
3481    , ('\72193','\72202')
3482    , ('\72243','\72248')
3483    , ('\72251','\72254')
3484    , ('\72263','\72263')
3485    , ('\72273','\72278')
3486    , ('\72281','\72283')
3487    , ('\72330','\72342')
3488    , ('\72344','\72345')
3489    , ('\72752','\72758')
3490    , ('\72760','\72765')
3491    , ('\72767','\72767')
3492    , ('\72850','\72871')
3493    , ('\72874','\72880')
3494    , ('\72882','\72883')
3495    , ('\72885','\72886')
3496    , ('\73009','\73014')
3497    , ('\73018','\73018')
3498    , ('\73020','\73021')
3499    , ('\73023','\73029')
3500    , ('\73031','\73031')
3501    , ('\73104','\73105')
3502    , ('\73109','\73109')
3503    , ('\73111','\73111')
3504    , ('\73459','\73460')
3505    , ('\92912','\92916')
3506    , ('\92976','\92982')
3507    , ('\94031','\94031')
3508    , ('\94095','\94098')
3509    , ('\113821','\113822')
3510    , ('\119143','\119145')
3511    , ('\119163','\119170')
3512    , ('\119173','\119179')
3513    , ('\119210','\119213')
3514    , ('\119362','\119364')
3515    , ('\121344','\121398')
3516    , ('\121403','\121452')
3517    , ('\121461','\121461')
3518    , ('\121476','\121476')
3519    , ('\121499','\121503')
3520    , ('\121505','\121519')
3521    , ('\122880','\122886')
3522    , ('\122888','\122904')
3523    , ('\122907','\122913')
3524    , ('\122915','\122916')
3525    , ('\122918','\122922')
3526    , ('\123184','\123190')
3527    , ('\123628','\123631')
3528    , ('\125136','\125142')
3529    , ('\125252','\125258')
3530    , ('\917760','\917999')
3531    ]
3532
3533-- ------------------------------------------------------------
3534
3535isUnicodeN :: Char -> Bool
3536isUnicodeN c
3537  = elemCS c charPropUnicodeN
3538
3539charPropUnicodeN :: CharSet
3540charPropUnicodeN
3541  = [ ('0','9')
3542    , ('\178','\179')
3543    , ('\185','\185')
3544    , ('\188','\190')
3545    , ('\1632','\1641')
3546    , ('\1776','\1785')
3547    , ('\1984','\1993')
3548    , ('\2406','\2415')
3549    , ('\2534','\2543')
3550    , ('\2548','\2553')
3551    , ('\2662','\2671')
3552    , ('\2790','\2799')
3553    , ('\2918','\2927')
3554    , ('\2930','\2935')
3555    , ('\3046','\3058')
3556    , ('\3174','\3183')
3557    , ('\3192','\3198')
3558    , ('\3302','\3311')
3559    , ('\3416','\3422')
3560    , ('\3430','\3448')
3561    , ('\3558','\3567')
3562    , ('\3664','\3673')
3563    , ('\3792','\3801')
3564    , ('\3872','\3891')
3565    , ('\4160','\4169')
3566    , ('\4240','\4249')
3567    , ('\4969','\4988')
3568    , ('\5870','\5872')
3569    , ('\6112','\6121')
3570    , ('\6128','\6137')
3571    , ('\6160','\6169')
3572    , ('\6470','\6479')
3573    , ('\6608','\6618')
3574    , ('\6784','\6793')
3575    , ('\6800','\6809')
3576    , ('\6992','\7001')
3577    , ('\7088','\7097')
3578    , ('\7232','\7241')
3579    , ('\7248','\7257')
3580    , ('\8304','\8304')
3581    , ('\8308','\8313')
3582    , ('\8320','\8329')
3583    , ('\8528','\8578')
3584    , ('\8581','\8585')
3585    , ('\9312','\9371')
3586    , ('\9450','\9471')
3587    , ('\10102','\10131')
3588    , ('\11517','\11517')
3589    , ('\12295','\12295')
3590    , ('\12321','\12329')
3591    , ('\12344','\12346')
3592    , ('\12690','\12693')
3593    , ('\12832','\12841')
3594    , ('\12872','\12879')
3595    , ('\12881','\12895')
3596    , ('\12928','\12937')
3597    , ('\12977','\12991')
3598    , ('\42528','\42537')
3599    , ('\42726','\42735')
3600    , ('\43056','\43061')
3601    , ('\43216','\43225')
3602    , ('\43264','\43273')
3603    , ('\43472','\43481')
3604    , ('\43504','\43513')
3605    , ('\43600','\43609')
3606    , ('\44016','\44025')
3607    , ('\65296','\65305')
3608    , ('\65799','\65843')
3609    , ('\65856','\65912')
3610    , ('\65930','\65931')
3611    , ('\66273','\66299')
3612    , ('\66336','\66339')
3613    , ('\66369','\66369')
3614    , ('\66378','\66378')
3615    , ('\66513','\66517')
3616    , ('\66720','\66729')
3617    , ('\67672','\67679')
3618    , ('\67705','\67711')
3619    , ('\67751','\67759')
3620    , ('\67835','\67839')
3621    , ('\67862','\67867')
3622    , ('\68028','\68029')
3623    , ('\68032','\68047')
3624    , ('\68050','\68095')
3625    , ('\68160','\68168')
3626    , ('\68221','\68222')
3627    , ('\68253','\68255')
3628    , ('\68331','\68335')
3629    , ('\68440','\68447')
3630    , ('\68472','\68479')
3631    , ('\68521','\68527')
3632    , ('\68858','\68863')
3633    , ('\68912','\68921')
3634    , ('\69216','\69246')
3635    , ('\69405','\69414')
3636    , ('\69457','\69460')
3637    , ('\69714','\69743')
3638    , ('\69872','\69881')
3639    , ('\69942','\69951')
3640    , ('\70096','\70105')
3641    , ('\70113','\70132')
3642    , ('\70384','\70393')
3643    , ('\70736','\70745')
3644    , ('\70864','\70873')
3645    , ('\71248','\71257')
3646    , ('\71360','\71369')
3647    , ('\71472','\71483')
3648    , ('\71904','\71922')
3649    , ('\72784','\72812')
3650    , ('\73040','\73049')
3651    , ('\73120','\73129')
3652    , ('\73664','\73684')
3653    , ('\74752','\74862')
3654    , ('\92768','\92777')
3655    , ('\93008','\93017')
3656    , ('\93019','\93025')
3657    , ('\93824','\93846')
3658    , ('\119520','\119539')
3659    , ('\119648','\119672')
3660    , ('\120782','\120831')
3661    , ('\123200','\123209')
3662    , ('\123632','\123641')
3663    , ('\125127','\125135')
3664    , ('\125264','\125273')
3665    , ('\126065','\126123')
3666    , ('\126125','\126127')
3667    , ('\126129','\126132')
3668    , ('\126209','\126253')
3669    , ('\126255','\126269')
3670    , ('\127232','\127244')
3671    ]
3672
3673-- ------------------------------------------------------------
3674
3675isUnicodeNd :: Char -> Bool
3676isUnicodeNd c
3677  = elemCS c charPropUnicodeNd
3678
3679charPropUnicodeNd :: CharSet
3680charPropUnicodeNd
3681  = [ ('0','9')
3682    , ('\1632','\1641')
3683    , ('\1776','\1785')
3684    , ('\1984','\1993')
3685    , ('\2406','\2415')
3686    , ('\2534','\2543')
3687    , ('\2662','\2671')
3688    , ('\2790','\2799')
3689    , ('\2918','\2927')
3690    , ('\3046','\3055')
3691    , ('\3174','\3183')
3692    , ('\3302','\3311')
3693    , ('\3430','\3439')
3694    , ('\3558','\3567')
3695    , ('\3664','\3673')
3696    , ('\3792','\3801')
3697    , ('\3872','\3881')
3698    , ('\4160','\4169')
3699    , ('\4240','\4249')
3700    , ('\6112','\6121')
3701    , ('\6160','\6169')
3702    , ('\6470','\6479')
3703    , ('\6608','\6617')
3704    , ('\6784','\6793')
3705    , ('\6800','\6809')
3706    , ('\6992','\7001')
3707    , ('\7088','\7097')
3708    , ('\7232','\7241')
3709    , ('\7248','\7257')
3710    , ('\42528','\42537')
3711    , ('\43216','\43225')
3712    , ('\43264','\43273')
3713    , ('\43472','\43481')
3714    , ('\43504','\43513')
3715    , ('\43600','\43609')
3716    , ('\44016','\44025')
3717    , ('\65296','\65305')
3718    , ('\66720','\66729')
3719    , ('\68912','\68921')
3720    , ('\69734','\69743')
3721    , ('\69872','\69881')
3722    , ('\69942','\69951')
3723    , ('\70096','\70105')
3724    , ('\70384','\70393')
3725    , ('\70736','\70745')
3726    , ('\70864','\70873')
3727    , ('\71248','\71257')
3728    , ('\71360','\71369')
3729    , ('\71472','\71481')
3730    , ('\71904','\71913')
3731    , ('\72784','\72793')
3732    , ('\73040','\73049')
3733    , ('\73120','\73129')
3734    , ('\92768','\92777')
3735    , ('\93008','\93017')
3736    , ('\120782','\120831')
3737    , ('\123200','\123209')
3738    , ('\123632','\123641')
3739    , ('\125264','\125273')
3740    ]
3741
3742-- ------------------------------------------------------------
3743
3744isUnicodeNl :: Char -> Bool
3745isUnicodeNl c
3746  = elemCS c charPropUnicodeNl
3747
3748charPropUnicodeNl :: CharSet
3749charPropUnicodeNl
3750  = [ ('\5870','\5872')
3751    , ('\8544','\8578')
3752    , ('\8581','\8584')
3753    , ('\12295','\12295')
3754    , ('\12321','\12329')
3755    , ('\12344','\12346')
3756    , ('\42726','\42735')
3757    , ('\65856','\65908')
3758    , ('\66369','\66369')
3759    , ('\66378','\66378')
3760    , ('\66513','\66517')
3761    , ('\74752','\74862')
3762    ]
3763
3764-- ------------------------------------------------------------
3765
3766isUnicodeNo :: Char -> Bool
3767isUnicodeNo c
3768  = elemCS c charPropUnicodeNo
3769
3770charPropUnicodeNo :: CharSet
3771charPropUnicodeNo
3772  = [ ('\178','\179')
3773    , ('\185','\185')
3774    , ('\188','\190')
3775    , ('\2548','\2553')
3776    , ('\2930','\2935')
3777    , ('\3056','\3058')
3778    , ('\3192','\3198')
3779    , ('\3416','\3422')
3780    , ('\3440','\3448')
3781    , ('\3882','\3891')
3782    , ('\4969','\4988')
3783    , ('\6128','\6137')
3784    , ('\6618','\6618')
3785    , ('\8304','\8304')
3786    , ('\8308','\8313')
3787    , ('\8320','\8329')
3788    , ('\8528','\8543')
3789    , ('\8585','\8585')
3790    , ('\9312','\9371')
3791    , ('\9450','\9471')
3792    , ('\10102','\10131')
3793    , ('\11517','\11517')
3794    , ('\12690','\12693')
3795    , ('\12832','\12841')
3796    , ('\12872','\12879')
3797    , ('\12881','\12895')
3798    , ('\12928','\12937')
3799    , ('\12977','\12991')
3800    , ('\43056','\43061')
3801    , ('\65799','\65843')
3802    , ('\65909','\65912')
3803    , ('\65930','\65931')
3804    , ('\66273','\66299')
3805    , ('\66336','\66339')
3806    , ('\67672','\67679')
3807    , ('\67705','\67711')
3808    , ('\67751','\67759')
3809    , ('\67835','\67839')
3810    , ('\67862','\67867')
3811    , ('\68028','\68029')
3812    , ('\68032','\68047')
3813    , ('\68050','\68095')
3814    , ('\68160','\68168')
3815    , ('\68221','\68222')
3816    , ('\68253','\68255')
3817    , ('\68331','\68335')
3818    , ('\68440','\68447')
3819    , ('\68472','\68479')
3820    , ('\68521','\68527')
3821    , ('\68858','\68863')
3822    , ('\69216','\69246')
3823    , ('\69405','\69414')
3824    , ('\69457','\69460')
3825    , ('\69714','\69733')
3826    , ('\70113','\70132')
3827    , ('\71482','\71483')
3828    , ('\71914','\71922')
3829    , ('\72794','\72812')
3830    , ('\73664','\73684')
3831    , ('\93019','\93025')
3832    , ('\93824','\93846')
3833    , ('\119520','\119539')
3834    , ('\119648','\119672')
3835    , ('\125127','\125135')
3836    , ('\126065','\126123')
3837    , ('\126125','\126127')
3838    , ('\126129','\126132')
3839    , ('\126209','\126253')
3840    , ('\126255','\126269')
3841    , ('\127232','\127244')
3842    ]
3843
3844-- ------------------------------------------------------------
3845
3846isUnicodeP :: Char -> Bool
3847isUnicodeP c
3848  = elemCS c charPropUnicodeP
3849
3850charPropUnicodeP :: CharSet
3851charPropUnicodeP
3852  = [ ('!','#')
3853    , ('%','*')
3854    , (',','/')
3855    , (':',';')
3856    , ('?','@')
3857    , ('[',']')
3858    , ('_','_')
3859    , ('{','{')
3860    , ('}','}')
3861    , ('\161','\161')
3862    , ('\167','\167')
3863    , ('\171','\171')
3864    , ('\182','\183')
3865    , ('\187','\187')
3866    , ('\191','\191')
3867    , ('\894','\894')
3868    , ('\903','\903')
3869    , ('\1370','\1375')
3870    , ('\1417','\1418')
3871    , ('\1470','\1470')
3872    , ('\1472','\1472')
3873    , ('\1475','\1475')
3874    , ('\1478','\1478')
3875    , ('\1523','\1524')
3876    , ('\1545','\1546')
3877    , ('\1548','\1549')
3878    , ('\1563','\1563')
3879    , ('\1566','\1567')
3880    , ('\1642','\1645')
3881    , ('\1748','\1748')
3882    , ('\1792','\1805')
3883    , ('\2039','\2041')
3884    , ('\2096','\2110')
3885    , ('\2142','\2142')
3886    , ('\2404','\2405')
3887    , ('\2416','\2416')
3888    , ('\2557','\2557')
3889    , ('\2678','\2678')
3890    , ('\2800','\2800')
3891    , ('\3191','\3191')
3892    , ('\3204','\3204')
3893    , ('\3572','\3572')
3894    , ('\3663','\3663')
3895    , ('\3674','\3675')
3896    , ('\3844','\3858')
3897    , ('\3860','\3860')
3898    , ('\3898','\3901')
3899    , ('\3973','\3973')
3900    , ('\4048','\4052')
3901    , ('\4057','\4058')
3902    , ('\4170','\4175')
3903    , ('\4347','\4347')
3904    , ('\4960','\4968')
3905    , ('\5120','\5120')
3906    , ('\5742','\5742')
3907    , ('\5787','\5788')
3908    , ('\5867','\5869')
3909    , ('\5941','\5942')
3910    , ('\6100','\6102')
3911    , ('\6104','\6106')
3912    , ('\6144','\6154')
3913    , ('\6468','\6469')
3914    , ('\6686','\6687')
3915    , ('\6816','\6822')
3916    , ('\6824','\6829')
3917    , ('\7002','\7008')
3918    , ('\7164','\7167')
3919    , ('\7227','\7231')
3920    , ('\7294','\7295')
3921    , ('\7360','\7367')
3922    , ('\7379','\7379')
3923    , ('\8208','\8231')
3924    , ('\8240','\8259')
3925    , ('\8261','\8273')
3926    , ('\8275','\8286')
3927    , ('\8317','\8318')
3928    , ('\8333','\8334')
3929    , ('\8968','\8971')
3930    , ('\9001','\9002')
3931    , ('\10088','\10101')
3932    , ('\10181','\10182')
3933    , ('\10214','\10223')
3934    , ('\10627','\10648')
3935    , ('\10712','\10715')
3936    , ('\10748','\10749')
3937    , ('\11513','\11516')
3938    , ('\11518','\11519')
3939    , ('\11632','\11632')
3940    , ('\11776','\11822')
3941    , ('\11824','\11855')
3942    , ('\12289','\12291')
3943    , ('\12296','\12305')
3944    , ('\12308','\12319')
3945    , ('\12336','\12336')
3946    , ('\12349','\12349')
3947    , ('\12448','\12448')
3948    , ('\12539','\12539')
3949    , ('\42238','\42239')
3950    , ('\42509','\42511')
3951    , ('\42611','\42611')
3952    , ('\42622','\42622')
3953    , ('\42738','\42743')
3954    , ('\43124','\43127')
3955    , ('\43214','\43215')
3956    , ('\43256','\43258')
3957    , ('\43260','\43260')
3958    , ('\43310','\43311')
3959    , ('\43359','\43359')
3960    , ('\43457','\43469')
3961    , ('\43486','\43487')
3962    , ('\43612','\43615')
3963    , ('\43742','\43743')
3964    , ('\43760','\43761')
3965    , ('\44011','\44011')
3966    , ('\64830','\64831')
3967    , ('\65040','\65049')
3968    , ('\65072','\65106')
3969    , ('\65108','\65121')
3970    , ('\65123','\65123')
3971    , ('\65128','\65128')
3972    , ('\65130','\65131')
3973    , ('\65281','\65283')
3974    , ('\65285','\65290')
3975    , ('\65292','\65295')
3976    , ('\65306','\65307')
3977    , ('\65311','\65312')
3978    , ('\65339','\65341')
3979    , ('\65343','\65343')
3980    , ('\65371','\65371')
3981    , ('\65373','\65373')
3982    , ('\65375','\65381')
3983    , ('\65792','\65794')
3984    , ('\66463','\66463')
3985    , ('\66512','\66512')
3986    , ('\66927','\66927')
3987    , ('\67671','\67671')
3988    , ('\67871','\67871')
3989    , ('\67903','\67903')
3990    , ('\68176','\68184')
3991    , ('\68223','\68223')
3992    , ('\68336','\68342')
3993    , ('\68409','\68415')
3994    , ('\68505','\68508')
3995    , ('\69461','\69465')
3996    , ('\69703','\69709')
3997    , ('\69819','\69820')
3998    , ('\69822','\69825')
3999    , ('\69952','\69955')
4000    , ('\70004','\70005')
4001    , ('\70085','\70088')
4002    , ('\70093','\70093')
4003    , ('\70107','\70107')
4004    , ('\70109','\70111')
4005    , ('\70200','\70205')
4006    , ('\70313','\70313')
4007    , ('\70731','\70735')
4008    , ('\70747','\70747')
4009    , ('\70749','\70749')
4010    , ('\70854','\70854')
4011    , ('\71105','\71127')
4012    , ('\71233','\71235')
4013    , ('\71264','\71276')
4014    , ('\71484','\71486')
4015    , ('\71739','\71739')
4016    , ('\72162','\72162')
4017    , ('\72255','\72262')
4018    , ('\72346','\72348')
4019    , ('\72350','\72354')
4020    , ('\72769','\72773')
4021    , ('\72816','\72817')
4022    , ('\73463','\73464')
4023    , ('\73727','\73727')
4024    , ('\74864','\74868')
4025    , ('\92782','\92783')
4026    , ('\92917','\92917')
4027    , ('\92983','\92987')
4028    , ('\92996','\92996')
4029    , ('\93847','\93850')
4030    , ('\94178','\94178')
4031    , ('\113823','\113823')
4032    , ('\121479','\121483')
4033    , ('\125278','\125279')
4034    ]
4035
4036-- ------------------------------------------------------------
4037
4038isUnicodePc :: Char -> Bool
4039isUnicodePc c
4040  = elemCS c charPropUnicodePc
4041
4042charPropUnicodePc :: CharSet
4043charPropUnicodePc
4044  = [ ('_','_')
4045    , ('\8255','\8256')
4046    , ('\8276','\8276')
4047    , ('\65075','\65076')
4048    , ('\65101','\65103')
4049    , ('\65343','\65343')
4050    ]
4051
4052-- ------------------------------------------------------------
4053
4054isUnicodePd :: Char -> Bool
4055isUnicodePd c
4056  = elemCS c charPropUnicodePd
4057
4058charPropUnicodePd :: CharSet
4059charPropUnicodePd
4060  = [ ('-','-')
4061    , ('\1418','\1418')
4062    , ('\1470','\1470')
4063    , ('\5120','\5120')
4064    , ('\6150','\6150')
4065    , ('\8208','\8213')
4066    , ('\11799','\11799')
4067    , ('\11802','\11802')
4068    , ('\11834','\11835')
4069    , ('\11840','\11840')
4070    , ('\12316','\12316')
4071    , ('\12336','\12336')
4072    , ('\12448','\12448')
4073    , ('\65073','\65074')
4074    , ('\65112','\65112')
4075    , ('\65123','\65123')
4076    , ('\65293','\65293')
4077    ]
4078
4079-- ------------------------------------------------------------
4080
4081isUnicodePe :: Char -> Bool
4082isUnicodePe c
4083  = elemCS c charPropUnicodePe
4084
4085charPropUnicodePe :: CharSet
4086charPropUnicodePe
4087  = [ (')',')')
4088    , (']',']')
4089    , ('}','}')
4090    , ('\3899','\3899')
4091    , ('\3901','\3901')
4092    , ('\5788','\5788')
4093    , ('\8262','\8262')
4094    , ('\8318','\8318')
4095    , ('\8334','\8334')
4096    , ('\8969','\8969')
4097    , ('\8971','\8971')
4098    , ('\9002','\9002')
4099    , ('\10089','\10089')
4100    , ('\10091','\10091')
4101    , ('\10093','\10093')
4102    , ('\10095','\10095')
4103    , ('\10097','\10097')
4104    , ('\10099','\10099')
4105    , ('\10101','\10101')
4106    , ('\10182','\10182')
4107    , ('\10215','\10215')
4108    , ('\10217','\10217')
4109    , ('\10219','\10219')
4110    , ('\10221','\10221')
4111    , ('\10223','\10223')
4112    , ('\10628','\10628')
4113    , ('\10630','\10630')
4114    , ('\10632','\10632')
4115    , ('\10634','\10634')
4116    , ('\10636','\10636')
4117    , ('\10638','\10638')
4118    , ('\10640','\10640')
4119    , ('\10642','\10642')
4120    , ('\10644','\10644')
4121    , ('\10646','\10646')
4122    , ('\10648','\10648')
4123    , ('\10713','\10713')
4124    , ('\10715','\10715')
4125    , ('\10749','\10749')
4126    , ('\11811','\11811')
4127    , ('\11813','\11813')
4128    , ('\11815','\11815')
4129    , ('\11817','\11817')
4130    , ('\12297','\12297')
4131    , ('\12299','\12299')
4132    , ('\12301','\12301')
4133    , ('\12303','\12303')
4134    , ('\12305','\12305')
4135    , ('\12309','\12309')
4136    , ('\12311','\12311')
4137    , ('\12313','\12313')
4138    , ('\12315','\12315')
4139    , ('\12318','\12319')
4140    , ('\64830','\64830')
4141    , ('\65048','\65048')
4142    , ('\65078','\65078')
4143    , ('\65080','\65080')
4144    , ('\65082','\65082')
4145    , ('\65084','\65084')
4146    , ('\65086','\65086')
4147    , ('\65088','\65088')
4148    , ('\65090','\65090')
4149    , ('\65092','\65092')
4150    , ('\65096','\65096')
4151    , ('\65114','\65114')
4152    , ('\65116','\65116')
4153    , ('\65118','\65118')
4154    , ('\65289','\65289')
4155    , ('\65341','\65341')
4156    , ('\65373','\65373')
4157    , ('\65376','\65376')
4158    , ('\65379','\65379')
4159    ]
4160
4161-- ------------------------------------------------------------
4162
4163isUnicodePf :: Char -> Bool
4164isUnicodePf c
4165  = elemCS c charPropUnicodePf
4166
4167charPropUnicodePf :: CharSet
4168charPropUnicodePf
4169  = [ ('\187','\187')
4170    , ('\8217','\8217')
4171    , ('\8221','\8221')
4172    , ('\8250','\8250')
4173    , ('\11779','\11779')
4174    , ('\11781','\11781')
4175    , ('\11786','\11786')
4176    , ('\11789','\11789')
4177    , ('\11805','\11805')
4178    , ('\11809','\11809')
4179    ]
4180
4181-- ------------------------------------------------------------
4182
4183isUnicodePi :: Char -> Bool
4184isUnicodePi c
4185  = elemCS c charPropUnicodePi
4186
4187charPropUnicodePi :: CharSet
4188charPropUnicodePi
4189  = [ ('\171','\171')
4190    , ('\8216','\8216')
4191    , ('\8219','\8220')
4192    , ('\8223','\8223')
4193    , ('\8249','\8249')
4194    , ('\11778','\11778')
4195    , ('\11780','\11780')
4196    , ('\11785','\11785')
4197    , ('\11788','\11788')
4198    , ('\11804','\11804')
4199    , ('\11808','\11808')
4200    ]
4201
4202-- ------------------------------------------------------------
4203
4204isUnicodePo :: Char -> Bool
4205isUnicodePo c
4206  = elemCS c charPropUnicodePo
4207
4208charPropUnicodePo :: CharSet
4209charPropUnicodePo
4210  = [ ('!','#')
4211    , ('%','\'')
4212    , ('*','*')
4213    , (',',',')
4214    , ('.','/')
4215    , (':',';')
4216    , ('?','@')
4217    , ('\\','\\')
4218    , ('\161','\161')
4219    , ('\167','\167')
4220    , ('\182','\183')
4221    , ('\191','\191')
4222    , ('\894','\894')
4223    , ('\903','\903')
4224    , ('\1370','\1375')
4225    , ('\1417','\1417')
4226    , ('\1472','\1472')
4227    , ('\1475','\1475')
4228    , ('\1478','\1478')
4229    , ('\1523','\1524')
4230    , ('\1545','\1546')
4231    , ('\1548','\1549')
4232    , ('\1563','\1563')
4233    , ('\1566','\1567')
4234    , ('\1642','\1645')
4235    , ('\1748','\1748')
4236    , ('\1792','\1805')
4237    , ('\2039','\2041')
4238    , ('\2096','\2110')
4239    , ('\2142','\2142')
4240    , ('\2404','\2405')
4241    , ('\2416','\2416')
4242    , ('\2557','\2557')
4243    , ('\2678','\2678')
4244    , ('\2800','\2800')
4245    , ('\3191','\3191')
4246    , ('\3204','\3204')
4247    , ('\3572','\3572')
4248    , ('\3663','\3663')
4249    , ('\3674','\3675')
4250    , ('\3844','\3858')
4251    , ('\3860','\3860')
4252    , ('\3973','\3973')
4253    , ('\4048','\4052')
4254    , ('\4057','\4058')
4255    , ('\4170','\4175')
4256    , ('\4347','\4347')
4257    , ('\4960','\4968')
4258    , ('\5742','\5742')
4259    , ('\5867','\5869')
4260    , ('\5941','\5942')
4261    , ('\6100','\6102')
4262    , ('\6104','\6106')
4263    , ('\6144','\6149')
4264    , ('\6151','\6154')
4265    , ('\6468','\6469')
4266    , ('\6686','\6687')
4267    , ('\6816','\6822')
4268    , ('\6824','\6829')
4269    , ('\7002','\7008')
4270    , ('\7164','\7167')
4271    , ('\7227','\7231')
4272    , ('\7294','\7295')
4273    , ('\7360','\7367')
4274    , ('\7379','\7379')
4275    , ('\8214','\8215')
4276    , ('\8224','\8231')
4277    , ('\8240','\8248')
4278    , ('\8251','\8254')
4279    , ('\8257','\8259')
4280    , ('\8263','\8273')
4281    , ('\8275','\8275')
4282    , ('\8277','\8286')
4283    , ('\11513','\11516')
4284    , ('\11518','\11519')
4285    , ('\11632','\11632')
4286    , ('\11776','\11777')
4287    , ('\11782','\11784')
4288    , ('\11787','\11787')
4289    , ('\11790','\11798')
4290    , ('\11800','\11801')
4291    , ('\11803','\11803')
4292    , ('\11806','\11807')
4293    , ('\11818','\11822')
4294    , ('\11824','\11833')
4295    , ('\11836','\11839')
4296    , ('\11841','\11841')
4297    , ('\11843','\11855')
4298    , ('\12289','\12291')
4299    , ('\12349','\12349')
4300    , ('\12539','\12539')
4301    , ('\42238','\42239')
4302    , ('\42509','\42511')
4303    , ('\42611','\42611')
4304    , ('\42622','\42622')
4305    , ('\42738','\42743')
4306    , ('\43124','\43127')
4307    , ('\43214','\43215')
4308    , ('\43256','\43258')
4309    , ('\43260','\43260')
4310    , ('\43310','\43311')
4311    , ('\43359','\43359')
4312    , ('\43457','\43469')
4313    , ('\43486','\43487')
4314    , ('\43612','\43615')
4315    , ('\43742','\43743')
4316    , ('\43760','\43761')
4317    , ('\44011','\44011')
4318    , ('\65040','\65046')
4319    , ('\65049','\65049')
4320    , ('\65072','\65072')
4321    , ('\65093','\65094')
4322    , ('\65097','\65100')
4323    , ('\65104','\65106')
4324    , ('\65108','\65111')
4325    , ('\65119','\65121')
4326    , ('\65128','\65128')
4327    , ('\65130','\65131')
4328    , ('\65281','\65283')
4329    , ('\65285','\65287')
4330    , ('\65290','\65290')
4331    , ('\65292','\65292')
4332    , ('\65294','\65295')
4333    , ('\65306','\65307')
4334    , ('\65311','\65312')
4335    , ('\65340','\65340')
4336    , ('\65377','\65377')
4337    , ('\65380','\65381')
4338    , ('\65792','\65794')
4339    , ('\66463','\66463')
4340    , ('\66512','\66512')
4341    , ('\66927','\66927')
4342    , ('\67671','\67671')
4343    , ('\67871','\67871')
4344    , ('\67903','\67903')
4345    , ('\68176','\68184')
4346    , ('\68223','\68223')
4347    , ('\68336','\68342')
4348    , ('\68409','\68415')
4349    , ('\68505','\68508')
4350    , ('\69461','\69465')
4351    , ('\69703','\69709')
4352    , ('\69819','\69820')
4353    , ('\69822','\69825')
4354    , ('\69952','\69955')
4355    , ('\70004','\70005')
4356    , ('\70085','\70088')
4357    , ('\70093','\70093')
4358    , ('\70107','\70107')
4359    , ('\70109','\70111')
4360    , ('\70200','\70205')
4361    , ('\70313','\70313')
4362    , ('\70731','\70735')
4363    , ('\70747','\70747')
4364    , ('\70749','\70749')
4365    , ('\70854','\70854')
4366    , ('\71105','\71127')
4367    , ('\71233','\71235')
4368    , ('\71264','\71276')
4369    , ('\71484','\71486')
4370    , ('\71739','\71739')
4371    , ('\72162','\72162')
4372    , ('\72255','\72262')
4373    , ('\72346','\72348')
4374    , ('\72350','\72354')
4375    , ('\72769','\72773')
4376    , ('\72816','\72817')
4377    , ('\73463','\73464')
4378    , ('\73727','\73727')
4379    , ('\74864','\74868')
4380    , ('\92782','\92783')
4381    , ('\92917','\92917')
4382    , ('\92983','\92987')
4383    , ('\92996','\92996')
4384    , ('\93847','\93850')
4385    , ('\94178','\94178')
4386    , ('\113823','\113823')
4387    , ('\121479','\121483')
4388    , ('\125278','\125279')
4389    ]
4390
4391-- ------------------------------------------------------------
4392
4393isUnicodePs :: Char -> Bool
4394isUnicodePs c
4395  = elemCS c charPropUnicodePs
4396
4397charPropUnicodePs :: CharSet
4398charPropUnicodePs
4399  = [ ('(','(')
4400    , ('[','[')
4401    , ('{','{')
4402    , ('\3898','\3898')
4403    , ('\3900','\3900')
4404    , ('\5787','\5787')
4405    , ('\8218','\8218')
4406    , ('\8222','\8222')
4407    , ('\8261','\8261')
4408    , ('\8317','\8317')
4409    , ('\8333','\8333')
4410    , ('\8968','\8968')
4411    , ('\8970','\8970')
4412    , ('\9001','\9001')
4413    , ('\10088','\10088')
4414    , ('\10090','\10090')
4415    , ('\10092','\10092')
4416    , ('\10094','\10094')
4417    , ('\10096','\10096')
4418    , ('\10098','\10098')
4419    , ('\10100','\10100')
4420    , ('\10181','\10181')
4421    , ('\10214','\10214')
4422    , ('\10216','\10216')
4423    , ('\10218','\10218')
4424    , ('\10220','\10220')
4425    , ('\10222','\10222')
4426    , ('\10627','\10627')
4427    , ('\10629','\10629')
4428    , ('\10631','\10631')
4429    , ('\10633','\10633')
4430    , ('\10635','\10635')
4431    , ('\10637','\10637')
4432    , ('\10639','\10639')
4433    , ('\10641','\10641')
4434    , ('\10643','\10643')
4435    , ('\10645','\10645')
4436    , ('\10647','\10647')
4437    , ('\10712','\10712')
4438    , ('\10714','\10714')
4439    , ('\10748','\10748')
4440    , ('\11810','\11810')
4441    , ('\11812','\11812')
4442    , ('\11814','\11814')
4443    , ('\11816','\11816')
4444    , ('\11842','\11842')
4445    , ('\12296','\12296')
4446    , ('\12298','\12298')
4447    , ('\12300','\12300')
4448    , ('\12302','\12302')
4449    , ('\12304','\12304')
4450    , ('\12308','\12308')
4451    , ('\12310','\12310')
4452    , ('\12312','\12312')
4453    , ('\12314','\12314')
4454    , ('\12317','\12317')
4455    , ('\64831','\64831')
4456    , ('\65047','\65047')
4457    , ('\65077','\65077')
4458    , ('\65079','\65079')
4459    , ('\65081','\65081')
4460    , ('\65083','\65083')
4461    , ('\65085','\65085')
4462    , ('\65087','\65087')
4463    , ('\65089','\65089')
4464    , ('\65091','\65091')
4465    , ('\65095','\65095')
4466    , ('\65113','\65113')
4467    , ('\65115','\65115')
4468    , ('\65117','\65117')
4469    , ('\65288','\65288')
4470    , ('\65339','\65339')
4471    , ('\65371','\65371')
4472    , ('\65375','\65375')
4473    , ('\65378','\65378')
4474    ]
4475
4476-- ------------------------------------------------------------
4477
4478isUnicodeS :: Char -> Bool
4479isUnicodeS c
4480  = elemCS c charPropUnicodeS
4481
4482charPropUnicodeS :: CharSet
4483charPropUnicodeS
4484  = [ ('$','$')
4485    , ('+','+')
4486    , ('<','>')
4487    , ('^','^')
4488    , ('`','`')
4489    , ('|','|')
4490    , ('~','~')
4491    , ('\162','\166')
4492    , ('\168','\169')
4493    , ('\172','\172')
4494    , ('\174','\177')
4495    , ('\180','\180')
4496    , ('\184','\184')
4497    , ('\215','\215')
4498    , ('\247','\247')
4499    , ('\706','\709')
4500    , ('\722','\735')
4501    , ('\741','\747')
4502    , ('\749','\749')
4503    , ('\751','\767')
4504    , ('\885','\885')
4505    , ('\900','\901')
4506    , ('\1014','\1014')
4507    , ('\1154','\1154')
4508    , ('\1421','\1423')
4509    , ('\1542','\1544')
4510    , ('\1547','\1547')
4511    , ('\1550','\1551')
4512    , ('\1758','\1758')
4513    , ('\1769','\1769')
4514    , ('\1789','\1790')
4515    , ('\2038','\2038')
4516    , ('\2046','\2047')
4517    , ('\2546','\2547')
4518    , ('\2554','\2555')
4519    , ('\2801','\2801')
4520    , ('\2928','\2928')
4521    , ('\3059','\3066')
4522    , ('\3199','\3199')
4523    , ('\3407','\3407')
4524    , ('\3449','\3449')
4525    , ('\3647','\3647')
4526    , ('\3841','\3843')
4527    , ('\3859','\3859')
4528    , ('\3861','\3863')
4529    , ('\3866','\3871')
4530    , ('\3892','\3892')
4531    , ('\3894','\3894')
4532    , ('\3896','\3896')
4533    , ('\4030','\4037')
4534    , ('\4039','\4044')
4535    , ('\4046','\4047')
4536    , ('\4053','\4056')
4537    , ('\4254','\4255')
4538    , ('\5008','\5017')
4539    , ('\5741','\5741')
4540    , ('\6107','\6107')
4541    , ('\6464','\6464')
4542    , ('\6622','\6655')
4543    , ('\7009','\7018')
4544    , ('\7028','\7036')
4545    , ('\8125','\8125')
4546    , ('\8127','\8129')
4547    , ('\8141','\8143')
4548    , ('\8157','\8159')
4549    , ('\8173','\8175')
4550    , ('\8189','\8190')
4551    , ('\8260','\8260')
4552    , ('\8274','\8274')
4553    , ('\8314','\8316')
4554    , ('\8330','\8332')
4555    , ('\8352','\8383')
4556    , ('\8448','\8449')
4557    , ('\8451','\8454')
4558    , ('\8456','\8457')
4559    , ('\8468','\8468')
4560    , ('\8470','\8472')
4561    , ('\8478','\8483')
4562    , ('\8485','\8485')
4563    , ('\8487','\8487')
4564    , ('\8489','\8489')
4565    , ('\8494','\8494')
4566    , ('\8506','\8507')
4567    , ('\8512','\8516')
4568    , ('\8522','\8525')
4569    , ('\8527','\8527')
4570    , ('\8586','\8587')
4571    , ('\8592','\8967')
4572    , ('\8972','\9000')
4573    , ('\9003','\9254')
4574    , ('\9280','\9290')
4575    , ('\9372','\9449')
4576    , ('\9472','\10087')
4577    , ('\10132','\10180')
4578    , ('\10183','\10213')
4579    , ('\10224','\10626')
4580    , ('\10649','\10711')
4581    , ('\10716','\10747')
4582    , ('\10750','\11123')
4583    , ('\11126','\11157')
4584    , ('\11160','\11263')
4585    , ('\11493','\11498')
4586    , ('\11904','\11929')
4587    , ('\11931','\12019')
4588    , ('\12032','\12245')
4589    , ('\12272','\12283')
4590    , ('\12292','\12292')
4591    , ('\12306','\12307')
4592    , ('\12320','\12320')
4593    , ('\12342','\12343')
4594    , ('\12350','\12351')
4595    , ('\12443','\12444')
4596    , ('\12688','\12689')
4597    , ('\12694','\12703')
4598    , ('\12736','\12771')
4599    , ('\12800','\12830')
4600    , ('\12842','\12871')
4601    , ('\12880','\12880')
4602    , ('\12896','\12927')
4603    , ('\12938','\12976')
4604    , ('\12992','\13311')
4605    , ('\19904','\19967')
4606    , ('\42128','\42182')
4607    , ('\42752','\42774')
4608    , ('\42784','\42785')
4609    , ('\42889','\42890')
4610    , ('\43048','\43051')
4611    , ('\43062','\43065')
4612    , ('\43639','\43641')
4613    , ('\43867','\43867')
4614    , ('\64297','\64297')
4615    , ('\64434','\64449')
4616    , ('\65020','\65021')
4617    , ('\65122','\65122')
4618    , ('\65124','\65126')
4619    , ('\65129','\65129')
4620    , ('\65284','\65284')
4621    , ('\65291','\65291')
4622    , ('\65308','\65310')
4623    , ('\65342','\65342')
4624    , ('\65344','\65344')
4625    , ('\65372','\65372')
4626    , ('\65374','\65374')
4627    , ('\65504','\65510')
4628    , ('\65512','\65518')
4629    , ('\65532','\65533')
4630    , ('\65847','\65855')
4631    , ('\65913','\65929')
4632    , ('\65932','\65934')
4633    , ('\65936','\65947')
4634    , ('\65952','\65952')
4635    , ('\66000','\66044')
4636    , ('\67703','\67704')
4637    , ('\68296','\68296')
4638    , ('\71487','\71487')
4639    , ('\73685','\73713')
4640    , ('\92988','\92991')
4641    , ('\92997','\92997')
4642    , ('\113820','\113820')
4643    , ('\118784','\119029')
4644    , ('\119040','\119078')
4645    , ('\119081','\119140')
4646    , ('\119146','\119148')
4647    , ('\119171','\119172')
4648    , ('\119180','\119209')
4649    , ('\119214','\119272')
4650    , ('\119296','\119361')
4651    , ('\119365','\119365')
4652    , ('\119552','\119638')
4653    , ('\120513','\120513')
4654    , ('\120539','\120539')
4655    , ('\120571','\120571')
4656    , ('\120597','\120597')
4657    , ('\120629','\120629')
4658    , ('\120655','\120655')
4659    , ('\120687','\120687')
4660    , ('\120713','\120713')
4661    , ('\120745','\120745')
4662    , ('\120771','\120771')
4663    , ('\120832','\121343')
4664    , ('\121399','\121402')
4665    , ('\121453','\121460')
4666    , ('\121462','\121475')
4667    , ('\121477','\121478')
4668    , ('\123215','\123215')
4669    , ('\123647','\123647')
4670    , ('\126124','\126124')
4671    , ('\126128','\126128')
4672    , ('\126254','\126254')
4673    , ('\126704','\126705')
4674    , ('\126976','\127019')
4675    , ('\127024','\127123')
4676    , ('\127136','\127150')
4677    , ('\127153','\127167')
4678    , ('\127169','\127183')
4679    , ('\127185','\127221')
4680    , ('\127248','\127340')
4681    , ('\127344','\127404')
4682    , ('\127462','\127490')
4683    , ('\127504','\127547')
4684    , ('\127552','\127560')
4685    , ('\127568','\127569')
4686    , ('\127584','\127589')
4687    , ('\127744','\128725')
4688    , ('\128736','\128748')
4689    , ('\128752','\128762')
4690    , ('\128768','\128883')
4691    , ('\128896','\128984')
4692    , ('\128992','\129003')
4693    , ('\129024','\129035')
4694    , ('\129040','\129095')
4695    , ('\129104','\129113')
4696    , ('\129120','\129159')
4697    , ('\129168','\129197')
4698    , ('\129280','\129291')
4699    , ('\129293','\129393')
4700    , ('\129395','\129398')
4701    , ('\129402','\129442')
4702    , ('\129445','\129450')
4703    , ('\129454','\129482')
4704    , ('\129485','\129619')
4705    , ('\129632','\129645')
4706    , ('\129648','\129651')
4707    , ('\129656','\129658')
4708    , ('\129664','\129666')
4709    , ('\129680','\129685')
4710    ]
4711
4712-- ------------------------------------------------------------
4713
4714isUnicodeSc :: Char -> Bool
4715isUnicodeSc c
4716  = elemCS c charPropUnicodeSc
4717
4718charPropUnicodeSc :: CharSet
4719charPropUnicodeSc
4720  = [ ('$','$')
4721    , ('\162','\165')
4722    , ('\1423','\1423')
4723    , ('\1547','\1547')
4724    , ('\2046','\2047')
4725    , ('\2546','\2547')
4726    , ('\2555','\2555')
4727    , ('\2801','\2801')
4728    , ('\3065','\3065')
4729    , ('\3647','\3647')
4730    , ('\6107','\6107')
4731    , ('\8352','\8383')
4732    , ('\43064','\43064')
4733    , ('\65020','\65020')
4734    , ('\65129','\65129')
4735    , ('\65284','\65284')
4736    , ('\65504','\65505')
4737    , ('\65509','\65510')
4738    , ('\73693','\73696')
4739    , ('\123647','\123647')
4740    , ('\126128','\126128')
4741    ]
4742
4743-- ------------------------------------------------------------
4744
4745isUnicodeSk :: Char -> Bool
4746isUnicodeSk c
4747  = elemCS c charPropUnicodeSk
4748
4749charPropUnicodeSk :: CharSet
4750charPropUnicodeSk
4751  = [ ('^','^')
4752    , ('`','`')
4753    , ('\168','\168')
4754    , ('\175','\175')
4755    , ('\180','\180')
4756    , ('\184','\184')
4757    , ('\706','\709')
4758    , ('\722','\735')
4759    , ('\741','\747')
4760    , ('\749','\749')
4761    , ('\751','\767')
4762    , ('\885','\885')
4763    , ('\900','\901')
4764    , ('\8125','\8125')
4765    , ('\8127','\8129')
4766    , ('\8141','\8143')
4767    , ('\8157','\8159')
4768    , ('\8173','\8175')
4769    , ('\8189','\8190')
4770    , ('\12443','\12444')
4771    , ('\42752','\42774')
4772    , ('\42784','\42785')
4773    , ('\42889','\42890')
4774    , ('\43867','\43867')
4775    , ('\64434','\64449')
4776    , ('\65342','\65342')
4777    , ('\65344','\65344')
4778    , ('\65507','\65507')
4779    , ('\127995','\127999')
4780    ]
4781
4782-- ------------------------------------------------------------
4783
4784isUnicodeSm :: Char -> Bool
4785isUnicodeSm c
4786  = elemCS c charPropUnicodeSm
4787
4788charPropUnicodeSm :: CharSet
4789charPropUnicodeSm
4790  = [ ('+','+')
4791    , ('<','>')
4792    , ('|','|')
4793    , ('~','~')
4794    , ('\172','\172')
4795    , ('\177','\177')
4796    , ('\215','\215')
4797    , ('\247','\247')
4798    , ('\1014','\1014')
4799    , ('\1542','\1544')
4800    , ('\8260','\8260')
4801    , ('\8274','\8274')
4802    , ('\8314','\8316')
4803    , ('\8330','\8332')
4804    , ('\8472','\8472')
4805    , ('\8512','\8516')
4806    , ('\8523','\8523')
4807    , ('\8592','\8596')
4808    , ('\8602','\8603')
4809    , ('\8608','\8608')
4810    , ('\8611','\8611')
4811    , ('\8614','\8614')
4812    , ('\8622','\8622')
4813    , ('\8654','\8655')
4814    , ('\8658','\8658')
4815    , ('\8660','\8660')
4816    , ('\8692','\8959')
4817    , ('\8992','\8993')
4818    , ('\9084','\9084')
4819    , ('\9115','\9139')
4820    , ('\9180','\9185')
4821    , ('\9655','\9655')
4822    , ('\9665','\9665')
4823    , ('\9720','\9727')
4824    , ('\9839','\9839')
4825    , ('\10176','\10180')
4826    , ('\10183','\10213')
4827    , ('\10224','\10239')
4828    , ('\10496','\10626')
4829    , ('\10649','\10711')
4830    , ('\10716','\10747')
4831    , ('\10750','\11007')
4832    , ('\11056','\11076')
4833    , ('\11079','\11084')
4834    , ('\64297','\64297')
4835    , ('\65122','\65122')
4836    , ('\65124','\65126')
4837    , ('\65291','\65291')
4838    , ('\65308','\65310')
4839    , ('\65372','\65372')
4840    , ('\65374','\65374')
4841    , ('\65506','\65506')
4842    , ('\65513','\65516')
4843    , ('\120513','\120513')
4844    , ('\120539','\120539')
4845    , ('\120571','\120571')
4846    , ('\120597','\120597')
4847    , ('\120629','\120629')
4848    , ('\120655','\120655')
4849    , ('\120687','\120687')
4850    , ('\120713','\120713')
4851    , ('\120745','\120745')
4852    , ('\120771','\120771')
4853    , ('\126704','\126705')
4854    ]
4855
4856-- ------------------------------------------------------------
4857
4858isUnicodeSo :: Char -> Bool
4859isUnicodeSo c
4860  = elemCS c charPropUnicodeSo
4861
4862charPropUnicodeSo :: CharSet
4863charPropUnicodeSo
4864  = [ ('\166','\166')
4865    , ('\169','\169')
4866    , ('\174','\174')
4867    , ('\176','\176')
4868    , ('\1154','\1154')
4869    , ('\1421','\1422')
4870    , ('\1550','\1551')
4871    , ('\1758','\1758')
4872    , ('\1769','\1769')
4873    , ('\1789','\1790')
4874    , ('\2038','\2038')
4875    , ('\2554','\2554')
4876    , ('\2928','\2928')
4877    , ('\3059','\3064')
4878    , ('\3066','\3066')
4879    , ('\3199','\3199')
4880    , ('\3407','\3407')
4881    , ('\3449','\3449')
4882    , ('\3841','\3843')
4883    , ('\3859','\3859')
4884    , ('\3861','\3863')
4885    , ('\3866','\3871')
4886    , ('\3892','\3892')
4887    , ('\3894','\3894')
4888    , ('\3896','\3896')
4889    , ('\4030','\4037')
4890    , ('\4039','\4044')
4891    , ('\4046','\4047')
4892    , ('\4053','\4056')
4893    , ('\4254','\4255')
4894    , ('\5008','\5017')
4895    , ('\5741','\5741')
4896    , ('\6464','\6464')
4897    , ('\6622','\6655')
4898    , ('\7009','\7018')
4899    , ('\7028','\7036')
4900    , ('\8448','\8449')
4901    , ('\8451','\8454')
4902    , ('\8456','\8457')
4903    , ('\8468','\8468')
4904    , ('\8470','\8471')
4905    , ('\8478','\8483')
4906    , ('\8485','\8485')
4907    , ('\8487','\8487')
4908    , ('\8489','\8489')
4909    , ('\8494','\8494')
4910    , ('\8506','\8507')
4911    , ('\8522','\8522')
4912    , ('\8524','\8525')
4913    , ('\8527','\8527')
4914    , ('\8586','\8587')
4915    , ('\8597','\8601')
4916    , ('\8604','\8607')
4917    , ('\8609','\8610')
4918    , ('\8612','\8613')
4919    , ('\8615','\8621')
4920    , ('\8623','\8653')
4921    , ('\8656','\8657')
4922    , ('\8659','\8659')
4923    , ('\8661','\8691')
4924    , ('\8960','\8967')
4925    , ('\8972','\8991')
4926    , ('\8994','\9000')
4927    , ('\9003','\9083')
4928    , ('\9085','\9114')
4929    , ('\9140','\9179')
4930    , ('\9186','\9254')
4931    , ('\9280','\9290')
4932    , ('\9372','\9449')
4933    , ('\9472','\9654')
4934    , ('\9656','\9664')
4935    , ('\9666','\9719')
4936    , ('\9728','\9838')
4937    , ('\9840','\10087')
4938    , ('\10132','\10175')
4939    , ('\10240','\10495')
4940    , ('\11008','\11055')
4941    , ('\11077','\11078')
4942    , ('\11085','\11123')
4943    , ('\11126','\11157')
4944    , ('\11160','\11263')
4945    , ('\11493','\11498')
4946    , ('\11904','\11929')
4947    , ('\11931','\12019')
4948    , ('\12032','\12245')
4949    , ('\12272','\12283')
4950    , ('\12292','\12292')
4951    , ('\12306','\12307')
4952    , ('\12320','\12320')
4953    , ('\12342','\12343')
4954    , ('\12350','\12351')
4955    , ('\12688','\12689')
4956    , ('\12694','\12703')
4957    , ('\12736','\12771')
4958    , ('\12800','\12830')
4959    , ('\12842','\12871')
4960    , ('\12880','\12880')
4961    , ('\12896','\12927')
4962    , ('\12938','\12976')
4963    , ('\12992','\13311')
4964    , ('\19904','\19967')
4965    , ('\42128','\42182')
4966    , ('\43048','\43051')
4967    , ('\43062','\43063')
4968    , ('\43065','\43065')
4969    , ('\43639','\43641')
4970    , ('\65021','\65021')
4971    , ('\65508','\65508')
4972    , ('\65512','\65512')
4973    , ('\65517','\65518')
4974    , ('\65532','\65533')
4975    , ('\65847','\65855')
4976    , ('\65913','\65929')
4977    , ('\65932','\65934')
4978    , ('\65936','\65947')
4979    , ('\65952','\65952')
4980    , ('\66000','\66044')
4981    , ('\67703','\67704')
4982    , ('\68296','\68296')
4983    , ('\71487','\71487')
4984    , ('\73685','\73692')
4985    , ('\73697','\73713')
4986    , ('\92988','\92991')
4987    , ('\92997','\92997')
4988    , ('\113820','\113820')
4989    , ('\118784','\119029')
4990    , ('\119040','\119078')
4991    , ('\119081','\119140')
4992    , ('\119146','\119148')
4993    , ('\119171','\119172')
4994    , ('\119180','\119209')
4995    , ('\119214','\119272')
4996    , ('\119296','\119361')
4997    , ('\119365','\119365')
4998    , ('\119552','\119638')
4999    , ('\120832','\121343')
5000    , ('\121399','\121402')
5001    , ('\121453','\121460')
5002    , ('\121462','\121475')
5003    , ('\121477','\121478')
5004    , ('\123215','\123215')
5005    , ('\126124','\126124')
5006    , ('\126254','\126254')
5007    , ('\126976','\127019')
5008    , ('\127024','\127123')
5009    , ('\127136','\127150')
5010    , ('\127153','\127167')
5011    , ('\127169','\127183')
5012    , ('\127185','\127221')
5013    , ('\127248','\127340')
5014    , ('\127344','\127404')
5015    , ('\127462','\127490')
5016    , ('\127504','\127547')
5017    , ('\127552','\127560')
5018    , ('\127568','\127569')
5019    , ('\127584','\127589')
5020    , ('\127744','\127994')
5021    , ('\128000','\128725')
5022    , ('\128736','\128748')
5023    , ('\128752','\128762')
5024    , ('\128768','\128883')
5025    , ('\128896','\128984')
5026    , ('\128992','\129003')
5027    , ('\129024','\129035')
5028    , ('\129040','\129095')
5029    , ('\129104','\129113')
5030    , ('\129120','\129159')
5031    , ('\129168','\129197')
5032    , ('\129280','\129291')
5033    , ('\129293','\129393')
5034    , ('\129395','\129398')
5035    , ('\129402','\129442')
5036    , ('\129445','\129450')
5037    , ('\129454','\129482')
5038    , ('\129485','\129619')
5039    , ('\129632','\129645')
5040    , ('\129648','\129651')
5041    , ('\129656','\129658')
5042    , ('\129664','\129666')
5043    , ('\129680','\129685')
5044    ]
5045
5046-- ------------------------------------------------------------
5047
5048isUnicodeZ :: Char -> Bool
5049isUnicodeZ c
5050  = elemCS c charPropUnicodeZ
5051
5052charPropUnicodeZ :: CharSet
5053charPropUnicodeZ
5054  = [ (' ',' ')
5055    , ('\160','\160')
5056    , ('\5760','\5760')
5057    , ('\8192','\8202')
5058    , ('\8232','\8233')
5059    , ('\8239','\8239')
5060    , ('\8287','\8287')
5061    , ('\12288','\12288')
5062    ]
5063
5064-- ------------------------------------------------------------
5065
5066isUnicodeZl :: Char -> Bool
5067isUnicodeZl c
5068  = elemCS c charPropUnicodeZl
5069
5070charPropUnicodeZl :: CharSet
5071charPropUnicodeZl
5072  = [ ('\8232','\8232')
5073    ]
5074
5075-- ------------------------------------------------------------
5076
5077isUnicodeZp :: Char -> Bool
5078isUnicodeZp c
5079  = elemCS c charPropUnicodeZp
5080
5081charPropUnicodeZp :: CharSet
5082charPropUnicodeZp
5083  = [ ('\8233','\8233')
5084    ]
5085
5086-- ------------------------------------------------------------
5087
5088isUnicodeZs :: Char -> Bool
5089isUnicodeZs c
5090  = elemCS c charPropUnicodeZs
5091
5092charPropUnicodeZs :: CharSet
5093charPropUnicodeZs
5094  = [ (' ',' ')
5095    , ('\160','\160')
5096    , ('\5760','\5760')
5097    , ('\8192','\8202')
5098    , ('\8239','\8239')
5099    , ('\8287','\8287')
5100    , ('\12288','\12288')
5101    ]
5102
5103-- ------------------------------------------------------------
5104
5105