{-# OPTIONS -fvia-C #-}
module Data.Char.Properties.MiscData where
{
	import Data.Char.Properties.PrivateData;
	import Data.Word;
	import Prelude;


	-- Data

	getCombiningClass :: Char -> Word8;
	getCombiningClass '\x0300' = 230;
	getCombiningClass '\x0301' = 230;
	getCombiningClass '\x0302' = 230;
	getCombiningClass '\x0303' = 230;
	getCombiningClass '\x0304' = 230;
	getCombiningClass '\x0305' = 230;
	getCombiningClass '\x0306' = 230;
	getCombiningClass '\x0307' = 230;
	getCombiningClass '\x0308' = 230;
	getCombiningClass '\x0309' = 230;
	getCombiningClass '\x030A' = 230;
	getCombiningClass '\x030B' = 230;
	getCombiningClass '\x030C' = 230;
	getCombiningClass '\x030D' = 230;
	getCombiningClass '\x030E' = 230;
	getCombiningClass '\x030F' = 230;
	getCombiningClass '\x0310' = 230;
	getCombiningClass '\x0311' = 230;
	getCombiningClass '\x0312' = 230;
	getCombiningClass '\x0313' = 230;
	getCombiningClass '\x0314' = 230;
	getCombiningClass '\x0315' = 232;
	getCombiningClass '\x0316' = 220;
	getCombiningClass '\x0317' = 220;
	getCombiningClass '\x0318' = 220;
	getCombiningClass '\x0319' = 220;
	getCombiningClass '\x031A' = 232;
	getCombiningClass '\x031B' = 216;
	getCombiningClass '\x031C' = 220;
	getCombiningClass '\x031D' = 220;
	getCombiningClass '\x031E' = 220;
	getCombiningClass '\x031F' = 220;
	getCombiningClass '\x0320' = 220;
	getCombiningClass '\x0321' = 202;
	getCombiningClass '\x0322' = 202;
	getCombiningClass '\x0323' = 220;
	getCombiningClass '\x0324' = 220;
	getCombiningClass '\x0325' = 220;
	getCombiningClass '\x0326' = 220;
	getCombiningClass '\x0327' = 202;
	getCombiningClass '\x0328' = 202;
	getCombiningClass '\x0329' = 220;
	getCombiningClass '\x032A' = 220;
	getCombiningClass '\x032B' = 220;
	getCombiningClass '\x032C' = 220;
	getCombiningClass '\x032D' = 220;
	getCombiningClass '\x032E' = 220;
	getCombiningClass '\x032F' = 220;
	getCombiningClass '\x0330' = 220;
	getCombiningClass '\x0331' = 220;
	getCombiningClass '\x0332' = 220;
	getCombiningClass '\x0333' = 220;
	getCombiningClass '\x0334' = 1;
	getCombiningClass '\x0335' = 1;
	getCombiningClass '\x0336' = 1;
	getCombiningClass '\x0337' = 1;
	getCombiningClass '\x0338' = 1;
	getCombiningClass '\x0339' = 220;
	getCombiningClass '\x033A' = 220;
	getCombiningClass '\x033B' = 220;
	getCombiningClass '\x033C' = 220;
	getCombiningClass '\x033D' = 230;
	getCombiningClass '\x033E' = 230;
	getCombiningClass '\x033F' = 230;
	getCombiningClass '\x0340' = 230;
	getCombiningClass '\x0341' = 230;
	getCombiningClass '\x0342' = 230;
	getCombiningClass '\x0343' = 230;
	getCombiningClass '\x0344' = 230;
	getCombiningClass '\x0345' = 240;
	getCombiningClass '\x0346' = 230;
	getCombiningClass '\x0347' = 220;
	getCombiningClass '\x0348' = 220;
	getCombiningClass '\x0349' = 220;
	getCombiningClass '\x034A' = 230;
	getCombiningClass '\x034B' = 230;
	getCombiningClass '\x034C' = 230;
	getCombiningClass '\x034D' = 220;
	getCombiningClass '\x034E' = 220;
	getCombiningClass '\x0360' = 234;
	getCombiningClass '\x0361' = 234;
	getCombiningClass '\x0362' = 233;
	getCombiningClass '\x0363' = 230;
	getCombiningClass '\x0364' = 230;
	getCombiningClass '\x0365' = 230;
	getCombiningClass '\x0366' = 230;
	getCombiningClass '\x0367' = 230;
	getCombiningClass '\x0368' = 230;
	getCombiningClass '\x0369' = 230;
	getCombiningClass '\x036A' = 230;
	getCombiningClass '\x036B' = 230;
	getCombiningClass '\x036C' = 230;
	getCombiningClass '\x036D' = 230;
	getCombiningClass '\x036E' = 230;
	getCombiningClass '\x036F' = 230;
	getCombiningClass '\x0483' = 230;
	getCombiningClass '\x0484' = 230;
	getCombiningClass '\x0485' = 230;
	getCombiningClass '\x0486' = 230;
	getCombiningClass '\x0591' = 220;
	getCombiningClass '\x0592' = 230;
	getCombiningClass '\x0593' = 230;
	getCombiningClass '\x0594' = 230;
	getCombiningClass '\x0595' = 230;
	getCombiningClass '\x0596' = 220;
	getCombiningClass '\x0597' = 230;
	getCombiningClass '\x0598' = 230;
	getCombiningClass '\x0599' = 230;
	getCombiningClass '\x059A' = 222;
	getCombiningClass '\x059B' = 220;
	getCombiningClass '\x059C' = 230;
	getCombiningClass '\x059D' = 230;
	getCombiningClass '\x059E' = 230;
	getCombiningClass '\x059F' = 230;
	getCombiningClass '\x05A0' = 230;
	getCombiningClass '\x05A1' = 230;
	getCombiningClass '\x05A3' = 220;
	getCombiningClass '\x05A4' = 220;
	getCombiningClass '\x05A5' = 220;
	getCombiningClass '\x05A6' = 220;
	getCombiningClass '\x05A7' = 220;
	getCombiningClass '\x05A8' = 230;
	getCombiningClass '\x05A9' = 230;
	getCombiningClass '\x05AA' = 220;
	getCombiningClass '\x05AB' = 230;
	getCombiningClass '\x05AC' = 230;
	getCombiningClass '\x05AD' = 222;
	getCombiningClass '\x05AE' = 228;
	getCombiningClass '\x05AF' = 230;
	getCombiningClass '\x05B0' = 10;
	getCombiningClass '\x05B1' = 11;
	getCombiningClass '\x05B2' = 12;
	getCombiningClass '\x05B3' = 13;
	getCombiningClass '\x05B4' = 14;
	getCombiningClass '\x05B5' = 15;
	getCombiningClass '\x05B6' = 16;
	getCombiningClass '\x05B7' = 17;
	getCombiningClass '\x05B8' = 18;
	getCombiningClass '\x05B9' = 19;
	getCombiningClass '\x05BB' = 20;
	getCombiningClass '\x05BC' = 21;
	getCombiningClass '\x05BD' = 22;
	getCombiningClass '\x05BF' = 23;
	getCombiningClass '\x05C1' = 24;
	getCombiningClass '\x05C2' = 25;
	getCombiningClass '\x05C4' = 230;
	getCombiningClass '\x064B' = 27;
	getCombiningClass '\x064C' = 28;
	getCombiningClass '\x064D' = 29;
	getCombiningClass '\x064E' = 30;
	getCombiningClass '\x064F' = 31;
	getCombiningClass '\x0650' = 32;
	getCombiningClass '\x0651' = 33;
	getCombiningClass '\x0652' = 34;
	getCombiningClass '\x0653' = 230;
	getCombiningClass '\x0654' = 230;
	getCombiningClass '\x0655' = 220;
	getCombiningClass '\x0670' = 35;
	getCombiningClass '\x06D6' = 230;
	getCombiningClass '\x06D7' = 230;
	getCombiningClass '\x06D8' = 230;
	getCombiningClass '\x06D9' = 230;
	getCombiningClass '\x06DA' = 230;
	getCombiningClass '\x06DB' = 230;
	getCombiningClass '\x06DC' = 230;
	getCombiningClass '\x06DF' = 230;
	getCombiningClass '\x06E0' = 230;
	getCombiningClass '\x06E1' = 230;
	getCombiningClass '\x06E2' = 230;
	getCombiningClass '\x06E3' = 220;
	getCombiningClass '\x06E4' = 230;
	getCombiningClass '\x06E7' = 230;
	getCombiningClass '\x06E8' = 230;
	getCombiningClass '\x06EA' = 220;
	getCombiningClass '\x06EB' = 230;
	getCombiningClass '\x06EC' = 230;
	getCombiningClass '\x06ED' = 220;
	getCombiningClass '\x0711' = 36;
	getCombiningClass '\x0730' = 230;
	getCombiningClass '\x0731' = 220;
	getCombiningClass '\x0732' = 230;
	getCombiningClass '\x0733' = 230;
	getCombiningClass '\x0734' = 220;
	getCombiningClass '\x0735' = 230;
	getCombiningClass '\x0736' = 230;
	getCombiningClass '\x0737' = 220;
	getCombiningClass '\x0738' = 220;
	getCombiningClass '\x0739' = 220;
	getCombiningClass '\x073A' = 230;
	getCombiningClass '\x073B' = 220;
	getCombiningClass '\x073C' = 220;
	getCombiningClass '\x073D' = 230;
	getCombiningClass '\x073E' = 220;
	getCombiningClass '\x073F' = 230;
	getCombiningClass '\x0740' = 230;
	getCombiningClass '\x0741' = 230;
	getCombiningClass '\x0742' = 220;
	getCombiningClass '\x0743' = 230;
	getCombiningClass '\x0744' = 220;
	getCombiningClass '\x0745' = 230;
	getCombiningClass '\x0746' = 220;
	getCombiningClass '\x0747' = 230;
	getCombiningClass '\x0748' = 220;
	getCombiningClass '\x0749' = 230;
	getCombiningClass '\x074A' = 230;
	getCombiningClass '\x093C' = 7;
	getCombiningClass '\x094D' = 9;
	getCombiningClass '\x0951' = 230;
	getCombiningClass '\x0952' = 220;
	getCombiningClass '\x0953' = 230;
	getCombiningClass '\x0954' = 230;
	getCombiningClass '\x09BC' = 7;
	getCombiningClass '\x09CD' = 9;
	getCombiningClass '\x0A3C' = 7;
	getCombiningClass '\x0A4D' = 9;
	getCombiningClass '\x0ABC' = 7;
	getCombiningClass '\x0ACD' = 9;
	getCombiningClass '\x0B3C' = 7;
	getCombiningClass '\x0B4D' = 9;
	getCombiningClass '\x0BCD' = 9;
	getCombiningClass '\x0C4D' = 9;
	getCombiningClass '\x0C55' = 84;
	getCombiningClass '\x0C56' = 91;
	getCombiningClass '\x0CCD' = 9;
	getCombiningClass '\x0D4D' = 9;
	getCombiningClass '\x0DCA' = 9;
	getCombiningClass '\x0E38' = 103;
	getCombiningClass '\x0E39' = 103;
	getCombiningClass '\x0E3A' = 9;
	getCombiningClass '\x0E48' = 107;
	getCombiningClass '\x0E49' = 107;
	getCombiningClass '\x0E4A' = 107;
	getCombiningClass '\x0E4B' = 107;
	getCombiningClass '\x0EB8' = 118;
	getCombiningClass '\x0EB9' = 118;
	getCombiningClass '\x0EC8' = 122;
	getCombiningClass '\x0EC9' = 122;
	getCombiningClass '\x0ECA' = 122;
	getCombiningClass '\x0ECB' = 122;
	getCombiningClass '\x0F18' = 220;
	getCombiningClass '\x0F19' = 220;
	getCombiningClass '\x0F35' = 220;
	getCombiningClass '\x0F37' = 220;
	getCombiningClass '\x0F39' = 216;
	getCombiningClass '\x0F71' = 129;
	getCombiningClass '\x0F72' = 130;
	getCombiningClass '\x0F74' = 132;
	getCombiningClass '\x0F7A' = 130;
	getCombiningClass '\x0F7B' = 130;
	getCombiningClass '\x0F7C' = 130;
	getCombiningClass '\x0F7D' = 130;
	getCombiningClass '\x0F80' = 130;
	getCombiningClass '\x0F82' = 230;
	getCombiningClass '\x0F83' = 230;
	getCombiningClass '\x0F84' = 9;
	getCombiningClass '\x0F86' = 230;
	getCombiningClass '\x0F87' = 230;
	getCombiningClass '\x0FC6' = 220;
	getCombiningClass '\x1037' = 7;
	getCombiningClass '\x1039' = 9;
	getCombiningClass '\x1714' = 9;
	getCombiningClass '\x1734' = 9;
	getCombiningClass '\x17D2' = 9;
	getCombiningClass '\x18A9' = 228;
	getCombiningClass '\x20D0' = 230;
	getCombiningClass '\x20D1' = 230;
	getCombiningClass '\x20D2' = 1;
	getCombiningClass '\x20D3' = 1;
	getCombiningClass '\x20D4' = 230;
	getCombiningClass '\x20D5' = 230;
	getCombiningClass '\x20D6' = 230;
	getCombiningClass '\x20D7' = 230;
	getCombiningClass '\x20D8' = 1;
	getCombiningClass '\x20D9' = 1;
	getCombiningClass '\x20DA' = 1;
	getCombiningClass '\x20DB' = 230;
	getCombiningClass '\x20DC' = 230;
	getCombiningClass '\x20E1' = 230;
	getCombiningClass '\x20E5' = 1;
	getCombiningClass '\x20E6' = 1;
	getCombiningClass '\x20E7' = 230;
	getCombiningClass '\x20E8' = 220;
	getCombiningClass '\x20E9' = 230;
	getCombiningClass '\x20EA' = 1;
	getCombiningClass '\x302A' = 218;
	getCombiningClass '\x302B' = 228;
	getCombiningClass '\x302C' = 232;
	getCombiningClass '\x302D' = 222;
	getCombiningClass '\x302E' = 224;
	getCombiningClass '\x302F' = 224;
	getCombiningClass '\x3099' = 8;
	getCombiningClass '\x309A' = 8;
	getCombiningClass '\xFB1E' = 26;
	getCombiningClass '\xFE20' = 230;
	getCombiningClass '\xFE21' = 230;
	getCombiningClass '\xFE22' = 230;
	getCombiningClass '\xFE23' = 230;
	getCombiningClass '\x1D165' = 216;
	getCombiningClass '\x1D166' = 216;
	getCombiningClass '\x1D167' = 1;
	getCombiningClass '\x1D168' = 1;
	getCombiningClass '\x1D169' = 1;
	getCombiningClass '\x1D16D' = 226;
	getCombiningClass '\x1D16E' = 216;
	getCombiningClass '\x1D16F' = 216;
	getCombiningClass '\x1D170' = 216;
	getCombiningClass '\x1D171' = 216;
	getCombiningClass '\x1D172' = 216;
	getCombiningClass '\x1D17B' = 220;
	getCombiningClass '\x1D17C' = 220;
	getCombiningClass '\x1D17D' = 220;
	getCombiningClass '\x1D17E' = 220;
	getCombiningClass '\x1D17F' = 220;
	getCombiningClass '\x1D180' = 220;
	getCombiningClass '\x1D181' = 220;
	getCombiningClass '\x1D182' = 220;
	getCombiningClass '\x1D185' = 230;
	getCombiningClass '\x1D186' = 230;
	getCombiningClass '\x1D187' = 230;
	getCombiningClass '\x1D188' = 230;
	getCombiningClass '\x1D189' = 230;
	getCombiningClass '\x1D18A' = 220;
	getCombiningClass '\x1D18B' = 220;
	getCombiningClass '\x1D1AA' = 230;
	getCombiningClass '\x1D1AB' = 230;
	getCombiningClass '\x1D1AC' = 230;
	getCombiningClass '\x1D1AD' = 230;
	getCombiningClass c = handleOmittedRange 0 getCombiningClass c;

	getDecimalDigit :: Char -> Maybe Word8;
	getDecimalDigit '\x0030' = Just 0;
	getDecimalDigit '\x0031' = Just 1;
	getDecimalDigit '\x0032' = Just 2;
	getDecimalDigit '\x0033' = Just 3;
	getDecimalDigit '\x0034' = Just 4;
	getDecimalDigit '\x0035' = Just 5;
	getDecimalDigit '\x0036' = Just 6;
	getDecimalDigit '\x0037' = Just 7;
	getDecimalDigit '\x0038' = Just 8;
	getDecimalDigit '\x0039' = Just 9;
	getDecimalDigit '\x00B2' = Just 2;
	getDecimalDigit '\x00B3' = Just 3;
	getDecimalDigit '\x00B9' = Just 1;
	getDecimalDigit '\x0660' = Just 0;
	getDecimalDigit '\x0661' = Just 1;
	getDecimalDigit '\x0662' = Just 2;
	getDecimalDigit '\x0663' = Just 3;
	getDecimalDigit '\x0664' = Just 4;
	getDecimalDigit '\x0665' = Just 5;
	getDecimalDigit '\x0666' = Just 6;
	getDecimalDigit '\x0667' = Just 7;
	getDecimalDigit '\x0668' = Just 8;
	getDecimalDigit '\x0669' = Just 9;
	getDecimalDigit '\x06F0' = Just 0;
	getDecimalDigit '\x06F1' = Just 1;
	getDecimalDigit '\x06F2' = Just 2;
	getDecimalDigit '\x06F3' = Just 3;
	getDecimalDigit '\x06F4' = Just 4;
	getDecimalDigit '\x06F5' = Just 5;
	getDecimalDigit '\x06F6' = Just 6;
	getDecimalDigit '\x06F7' = Just 7;
	getDecimalDigit '\x06F8' = Just 8;
	getDecimalDigit '\x06F9' = Just 9;
	getDecimalDigit '\x0966' = Just 0;
	getDecimalDigit '\x0967' = Just 1;
	getDecimalDigit '\x0968' = Just 2;
	getDecimalDigit '\x0969' = Just 3;
	getDecimalDigit '\x096A' = Just 4;
	getDecimalDigit '\x096B' = Just 5;
	getDecimalDigit '\x096C' = Just 6;
	getDecimalDigit '\x096D' = Just 7;
	getDecimalDigit '\x096E' = Just 8;
	getDecimalDigit '\x096F' = Just 9;
	getDecimalDigit '\x09E6' = Just 0;
	getDecimalDigit '\x09E7' = Just 1;
	getDecimalDigit '\x09E8' = Just 2;
	getDecimalDigit '\x09E9' = Just 3;
	getDecimalDigit '\x09EA' = Just 4;
	getDecimalDigit '\x09EB' = Just 5;
	getDecimalDigit '\x09EC' = Just 6;
	getDecimalDigit '\x09ED' = Just 7;
	getDecimalDigit '\x09EE' = Just 8;
	getDecimalDigit '\x09EF' = Just 9;
	getDecimalDigit '\x0A66' = Just 0;
	getDecimalDigit '\x0A67' = Just 1;
	getDecimalDigit '\x0A68' = Just 2;
	getDecimalDigit '\x0A69' = Just 3;
	getDecimalDigit '\x0A6A' = Just 4;
	getDecimalDigit '\x0A6B' = Just 5;
	getDecimalDigit '\x0A6C' = Just 6;
	getDecimalDigit '\x0A6D' = Just 7;
	getDecimalDigit '\x0A6E' = Just 8;
	getDecimalDigit '\x0A6F' = Just 9;
	getDecimalDigit '\x0AE6' = Just 0;
	getDecimalDigit '\x0AE7' = Just 1;
	getDecimalDigit '\x0AE8' = Just 2;
	getDecimalDigit '\x0AE9' = Just 3;
	getDecimalDigit '\x0AEA' = Just 4;
	getDecimalDigit '\x0AEB' = Just 5;
	getDecimalDigit '\x0AEC' = Just 6;
	getDecimalDigit '\x0AED' = Just 7;
	getDecimalDigit '\x0AEE' = Just 8;
	getDecimalDigit '\x0AEF' = Just 9;
	getDecimalDigit '\x0B66' = Just 0;
	getDecimalDigit '\x0B67' = Just 1;
	getDecimalDigit '\x0B68' = Just 2;
	getDecimalDigit '\x0B69' = Just 3;
	getDecimalDigit '\x0B6A' = Just 4;
	getDecimalDigit '\x0B6B' = Just 5;
	getDecimalDigit '\x0B6C' = Just 6;
	getDecimalDigit '\x0B6D' = Just 7;
	getDecimalDigit '\x0B6E' = Just 8;
	getDecimalDigit '\x0B6F' = Just 9;
	getDecimalDigit '\x0BE7' = Just 1;
	getDecimalDigit '\x0BE8' = Just 2;
	getDecimalDigit '\x0BE9' = Just 3;
	getDecimalDigit '\x0BEA' = Just 4;
	getDecimalDigit '\x0BEB' = Just 5;
	getDecimalDigit '\x0BEC' = Just 6;
	getDecimalDigit '\x0BED' = Just 7;
	getDecimalDigit '\x0BEE' = Just 8;
	getDecimalDigit '\x0BEF' = Just 9;
	getDecimalDigit '\x0C66' = Just 0;
	getDecimalDigit '\x0C67' = Just 1;
	getDecimalDigit '\x0C68' = Just 2;
	getDecimalDigit '\x0C69' = Just 3;
	getDecimalDigit '\x0C6A' = Just 4;
	getDecimalDigit '\x0C6B' = Just 5;
	getDecimalDigit '\x0C6C' = Just 6;
	getDecimalDigit '\x0C6D' = Just 7;
	getDecimalDigit '\x0C6E' = Just 8;
	getDecimalDigit '\x0C6F' = Just 9;
	getDecimalDigit '\x0CE6' = Just 0;
	getDecimalDigit '\x0CE7' = Just 1;
	getDecimalDigit '\x0CE8' = Just 2;
	getDecimalDigit '\x0CE9' = Just 3;
	getDecimalDigit '\x0CEA' = Just 4;
	getDecimalDigit '\x0CEB' = Just 5;
	getDecimalDigit '\x0CEC' = Just 6;
	getDecimalDigit '\x0CED' = Just 7;
	getDecimalDigit '\x0CEE' = Just 8;
	getDecimalDigit '\x0CEF' = Just 9;
	getDecimalDigit '\x0D66' = Just 0;
	getDecimalDigit '\x0D67' = Just 1;
	getDecimalDigit '\x0D68' = Just 2;
	getDecimalDigit '\x0D69' = Just 3;
	getDecimalDigit '\x0D6A' = Just 4;
	getDecimalDigit '\x0D6B' = Just 5;
	getDecimalDigit '\x0D6C' = Just 6;
	getDecimalDigit '\x0D6D' = Just 7;
	getDecimalDigit '\x0D6E' = Just 8;
	getDecimalDigit '\x0D6F' = Just 9;
	getDecimalDigit '\x0E50' = Just 0;
	getDecimalDigit '\x0E51' = Just 1;
	getDecimalDigit '\x0E52' = Just 2;
	getDecimalDigit '\x0E53' = Just 3;
	getDecimalDigit '\x0E54' = Just 4;
	getDecimalDigit '\x0E55' = Just 5;
	getDecimalDigit '\x0E56' = Just 6;
	getDecimalDigit '\x0E57' = Just 7;
	getDecimalDigit '\x0E58' = Just 8;
	getDecimalDigit '\x0E59' = Just 9;
	getDecimalDigit '\x0ED0' = Just 0;
	getDecimalDigit '\x0ED1' = Just 1;
	getDecimalDigit '\x0ED2' = Just 2;
	getDecimalDigit '\x0ED3' = Just 3;
	getDecimalDigit '\x0ED4' = Just 4;
	getDecimalDigit '\x0ED5' = Just 5;
	getDecimalDigit '\x0ED6' = Just 6;
	getDecimalDigit '\x0ED7' = Just 7;
	getDecimalDigit '\x0ED8' = Just 8;
	getDecimalDigit '\x0ED9' = Just 9;
	getDecimalDigit '\x0F20' = Just 0;
	getDecimalDigit '\x0F21' = Just 1;
	getDecimalDigit '\x0F22' = Just 2;
	getDecimalDigit '\x0F23' = Just 3;
	getDecimalDigit '\x0F24' = Just 4;
	getDecimalDigit '\x0F25' = Just 5;
	getDecimalDigit '\x0F26' = Just 6;
	getDecimalDigit '\x0F27' = Just 7;
	getDecimalDigit '\x0F28' = Just 8;
	getDecimalDigit '\x0F29' = Just 9;
	getDecimalDigit '\x1040' = Just 0;
	getDecimalDigit '\x1041' = Just 1;
	getDecimalDigit '\x1042' = Just 2;
	getDecimalDigit '\x1043' = Just 3;
	getDecimalDigit '\x1044' = Just 4;
	getDecimalDigit '\x1045' = Just 5;
	getDecimalDigit '\x1046' = Just 6;
	getDecimalDigit '\x1047' = Just 7;
	getDecimalDigit '\x1048' = Just 8;
	getDecimalDigit '\x1049' = Just 9;
	getDecimalDigit '\x1369' = Just 1;
	getDecimalDigit '\x136A' = Just 2;
	getDecimalDigit '\x136B' = Just 3;
	getDecimalDigit '\x136C' = Just 4;
	getDecimalDigit '\x136D' = Just 5;
	getDecimalDigit '\x136E' = Just 6;
	getDecimalDigit '\x136F' = Just 7;
	getDecimalDigit '\x1370' = Just 8;
	getDecimalDigit '\x1371' = Just 9;
	getDecimalDigit '\x17E0' = Just 0;
	getDecimalDigit '\x17E1' = Just 1;
	getDecimalDigit '\x17E2' = Just 2;
	getDecimalDigit '\x17E3' = Just 3;
	getDecimalDigit '\x17E4' = Just 4;
	getDecimalDigit '\x17E5' = Just 5;
	getDecimalDigit '\x17E6' = Just 6;
	getDecimalDigit '\x17E7' = Just 7;
	getDecimalDigit '\x17E8' = Just 8;
	getDecimalDigit '\x17E9' = Just 9;
	getDecimalDigit '\x1810' = Just 0;
	getDecimalDigit '\x1811' = Just 1;
	getDecimalDigit '\x1812' = Just 2;
	getDecimalDigit '\x1813' = Just 3;
	getDecimalDigit '\x1814' = Just 4;
	getDecimalDigit '\x1815' = Just 5;
	getDecimalDigit '\x1816' = Just 6;
	getDecimalDigit '\x1817' = Just 7;
	getDecimalDigit '\x1818' = Just 8;
	getDecimalDigit '\x1819' = Just 9;
	getDecimalDigit '\x2070' = Just 0;
	getDecimalDigit '\x2074' = Just 4;
	getDecimalDigit '\x2075' = Just 5;
	getDecimalDigit '\x2076' = Just 6;
	getDecimalDigit '\x2077' = Just 7;
	getDecimalDigit '\x2078' = Just 8;
	getDecimalDigit '\x2079' = Just 9;
	getDecimalDigit '\x2080' = Just 0;
	getDecimalDigit '\x2081' = Just 1;
	getDecimalDigit '\x2082' = Just 2;
	getDecimalDigit '\x2083' = Just 3;
	getDecimalDigit '\x2084' = Just 4;
	getDecimalDigit '\x2085' = Just 5;
	getDecimalDigit '\x2086' = Just 6;
	getDecimalDigit '\x2087' = Just 7;
	getDecimalDigit '\x2088' = Just 8;
	getDecimalDigit '\x2089' = Just 9;
	getDecimalDigit '\xFF10' = Just 0;
	getDecimalDigit '\xFF11' = Just 1;
	getDecimalDigit '\xFF12' = Just 2;
	getDecimalDigit '\xFF13' = Just 3;
	getDecimalDigit '\xFF14' = Just 4;
	getDecimalDigit '\xFF15' = Just 5;
	getDecimalDigit '\xFF16' = Just 6;
	getDecimalDigit '\xFF17' = Just 7;
	getDecimalDigit '\xFF18' = Just 8;
	getDecimalDigit '\xFF19' = Just 9;
	getDecimalDigit '\x1D7CE' = Just 0;
	getDecimalDigit '\x1D7CF' = Just 1;
	getDecimalDigit '\x1D7D0' = Just 2;
	getDecimalDigit '\x1D7D1' = Just 3;
	getDecimalDigit '\x1D7D2' = Just 4;
	getDecimalDigit '\x1D7D3' = Just 5;
	getDecimalDigit '\x1D7D4' = Just 6;
	getDecimalDigit '\x1D7D5' = Just 7;
	getDecimalDigit '\x1D7D6' = Just 8;
	getDecimalDigit '\x1D7D7' = Just 9;
	getDecimalDigit '\x1D7D8' = Just 0;
	getDecimalDigit '\x1D7D9' = Just 1;
	getDecimalDigit '\x1D7DA' = Just 2;
	getDecimalDigit '\x1D7DB' = Just 3;
	getDecimalDigit '\x1D7DC' = Just 4;
	getDecimalDigit '\x1D7DD' = Just 5;
	getDecimalDigit '\x1D7DE' = Just 6;
	getDecimalDigit '\x1D7DF' = Just 7;
	getDecimalDigit '\x1D7E0' = Just 8;
	getDecimalDigit '\x1D7E1' = Just 9;
	getDecimalDigit '\x1D7E2' = Just 0;
	getDecimalDigit '\x1D7E3' = Just 1;
	getDecimalDigit '\x1D7E4' = Just 2;
	getDecimalDigit '\x1D7E5' = Just 3;
	getDecimalDigit '\x1D7E6' = Just 4;
	getDecimalDigit '\x1D7E7' = Just 5;
	getDecimalDigit '\x1D7E8' = Just 6;
	getDecimalDigit '\x1D7E9' = Just 7;
	getDecimalDigit '\x1D7EA' = Just 8;
	getDecimalDigit '\x1D7EB' = Just 9;
	getDecimalDigit '\x1D7EC' = Just 0;
	getDecimalDigit '\x1D7ED' = Just 1;
	getDecimalDigit '\x1D7EE' = Just 2;
	getDecimalDigit '\x1D7EF' = Just 3;
	getDecimalDigit '\x1D7F0' = Just 4;
	getDecimalDigit '\x1D7F1' = Just 5;
	getDecimalDigit '\x1D7F2' = Just 6;
	getDecimalDigit '\x1D7F3' = Just 7;
	getDecimalDigit '\x1D7F4' = Just 8;
	getDecimalDigit '\x1D7F5' = Just 9;
	getDecimalDigit '\x1D7F6' = Just 0;
	getDecimalDigit '\x1D7F7' = Just 1;
	getDecimalDigit '\x1D7F8' = Just 2;
	getDecimalDigit '\x1D7F9' = Just 3;
	getDecimalDigit '\x1D7FA' = Just 4;
	getDecimalDigit '\x1D7FB' = Just 5;
	getDecimalDigit '\x1D7FC' = Just 6;
	getDecimalDigit '\x1D7FD' = Just 7;
	getDecimalDigit '\x1D7FE' = Just 8;
	getDecimalDigit '\x1D7FF' = Just 9;
	getDecimalDigit c = handleOmittedRange Nothing getDecimalDigit c;

	getDigit :: Char -> Maybe Word8;
	getDigit '\x0030' = Just 0;
	getDigit '\x0031' = Just 1;
	getDigit '\x0032' = Just 2;
	getDigit '\x0033' = Just 3;
	getDigit '\x0034' = Just 4;
	getDigit '\x0035' = Just 5;
	getDigit '\x0036' = Just 6;
	getDigit '\x0037' = Just 7;
	getDigit '\x0038' = Just 8;
	getDigit '\x0039' = Just 9;
	getDigit '\x00B2' = Just 2;
	getDigit '\x00B3' = Just 3;
	getDigit '\x00B9' = Just 1;
	getDigit '\x0660' = Just 0;
	getDigit '\x0661' = Just 1;
	getDigit '\x0662' = Just 2;
	getDigit '\x0663' = Just 3;
	getDigit '\x0664' = Just 4;
	getDigit '\x0665' = Just 5;
	getDigit '\x0666' = Just 6;
	getDigit '\x0667' = Just 7;
	getDigit '\x0668' = Just 8;
	getDigit '\x0669' = Just 9;
	getDigit '\x06F0' = Just 0;
	getDigit '\x06F1' = Just 1;
	getDigit '\x06F2' = Just 2;
	getDigit '\x06F3' = Just 3;
	getDigit '\x06F4' = Just 4;
	getDigit '\x06F5' = Just 5;
	getDigit '\x06F6' = Just 6;
	getDigit '\x06F7' = Just 7;
	getDigit '\x06F8' = Just 8;
	getDigit '\x06F9' = Just 9;
	getDigit '\x0966' = Just 0;
	getDigit '\x0967' = Just 1;
	getDigit '\x0968' = Just 2;
	getDigit '\x0969' = Just 3;
	getDigit '\x096A' = Just 4;
	getDigit '\x096B' = Just 5;
	getDigit '\x096C' = Just 6;
	getDigit '\x096D' = Just 7;
	getDigit '\x096E' = Just 8;
	getDigit '\x096F' = Just 9;
	getDigit '\x09E6' = Just 0;
	getDigit '\x09E7' = Just 1;
	getDigit '\x09E8' = Just 2;
	getDigit '\x09E9' = Just 3;
	getDigit '\x09EA' = Just 4;
	getDigit '\x09EB' = Just 5;
	getDigit '\x09EC' = Just 6;
	getDigit '\x09ED' = Just 7;
	getDigit '\x09EE' = Just 8;
	getDigit '\x09EF' = Just 9;
	getDigit '\x0A66' = Just 0;
	getDigit '\x0A67' = Just 1;
	getDigit '\x0A68' = Just 2;
	getDigit '\x0A69' = Just 3;
	getDigit '\x0A6A' = Just 4;
	getDigit '\x0A6B' = Just 5;
	getDigit '\x0A6C' = Just 6;
	getDigit '\x0A6D' = Just 7;
	getDigit '\x0A6E' = Just 8;
	getDigit '\x0A6F' = Just 9;
	getDigit '\x0AE6' = Just 0;
	getDigit '\x0AE7' = Just 1;
	getDigit '\x0AE8' = Just 2;
	getDigit '\x0AE9' = Just 3;
	getDigit '\x0AEA' = Just 4;
	getDigit '\x0AEB' = Just 5;
	getDigit '\x0AEC' = Just 6;
	getDigit '\x0AED' = Just 7;
	getDigit '\x0AEE' = Just 8;
	getDigit '\x0AEF' = Just 9;
	getDigit '\x0B66' = Just 0;
	getDigit '\x0B67' = Just 1;
	getDigit '\x0B68' = Just 2;
	getDigit '\x0B69' = Just 3;
	getDigit '\x0B6A' = Just 4;
	getDigit '\x0B6B' = Just 5;
	getDigit '\x0B6C' = Just 6;
	getDigit '\x0B6D' = Just 7;
	getDigit '\x0B6E' = Just 8;
	getDigit '\x0B6F' = Just 9;
	getDigit '\x0BE7' = Just 1;
	getDigit '\x0BE8' = Just 2;
	getDigit '\x0BE9' = Just 3;
	getDigit '\x0BEA' = Just 4;
	getDigit '\x0BEB' = Just 5;
	getDigit '\x0BEC' = Just 6;
	getDigit '\x0BED' = Just 7;
	getDigit '\x0BEE' = Just 8;
	getDigit '\x0BEF' = Just 9;
	getDigit '\x0C66' = Just 0;
	getDigit '\x0C67' = Just 1;
	getDigit '\x0C68' = Just 2;
	getDigit '\x0C69' = Just 3;
	getDigit '\x0C6A' = Just 4;
	getDigit '\x0C6B' = Just 5;
	getDigit '\x0C6C' = Just 6;
	getDigit '\x0C6D' = Just 7;
	getDigit '\x0C6E' = Just 8;
	getDigit '\x0C6F' = Just 9;
	getDigit '\x0CE6' = Just 0;
	getDigit '\x0CE7' = Just 1;
	getDigit '\x0CE8' = Just 2;
	getDigit '\x0CE9' = Just 3;
	getDigit '\x0CEA' = Just 4;
	getDigit '\x0CEB' = Just 5;
	getDigit '\x0CEC' = Just 6;
	getDigit '\x0CED' = Just 7;
	getDigit '\x0CEE' = Just 8;
	getDigit '\x0CEF' = Just 9;
	getDigit '\x0D66' = Just 0;
	getDigit '\x0D67' = Just 1;
	getDigit '\x0D68' = Just 2;
	getDigit '\x0D69' = Just 3;
	getDigit '\x0D6A' = Just 4;
	getDigit '\x0D6B' = Just 5;
	getDigit '\x0D6C' = Just 6;
	getDigit '\x0D6D' = Just 7;
	getDigit '\x0D6E' = Just 8;
	getDigit '\x0D6F' = Just 9;
	getDigit '\x0E50' = Just 0;
	getDigit '\x0E51' = Just 1;
	getDigit '\x0E52' = Just 2;
	getDigit '\x0E53' = Just 3;
	getDigit '\x0E54' = Just 4;
	getDigit '\x0E55' = Just 5;
	getDigit '\x0E56' = Just 6;
	getDigit '\x0E57' = Just 7;
	getDigit '\x0E58' = Just 8;
	getDigit '\x0E59' = Just 9;
	getDigit '\x0ED0' = Just 0;
	getDigit '\x0ED1' = Just 1;
	getDigit '\x0ED2' = Just 2;
	getDigit '\x0ED3' = Just 3;
	getDigit '\x0ED4' = Just 4;
	getDigit '\x0ED5' = Just 5;
	getDigit '\x0ED6' = Just 6;
	getDigit '\x0ED7' = Just 7;
	getDigit '\x0ED8' = Just 8;
	getDigit '\x0ED9' = Just 9;
	getDigit '\x0F20' = Just 0;
	getDigit '\x0F21' = Just 1;
	getDigit '\x0F22' = Just 2;
	getDigit '\x0F23' = Just 3;
	getDigit '\x0F24' = Just 4;
	getDigit '\x0F25' = Just 5;
	getDigit '\x0F26' = Just 6;
	getDigit '\x0F27' = Just 7;
	getDigit '\x0F28' = Just 8;
	getDigit '\x0F29' = Just 9;
	getDigit '\x1040' = Just 0;
	getDigit '\x1041' = Just 1;
	getDigit '\x1042' = Just 2;
	getDigit '\x1043' = Just 3;
	getDigit '\x1044' = Just 4;
	getDigit '\x1045' = Just 5;
	getDigit '\x1046' = Just 6;
	getDigit '\x1047' = Just 7;
	getDigit '\x1048' = Just 8;
	getDigit '\x1049' = Just 9;
	getDigit '\x1369' = Just 1;
	getDigit '\x136A' = Just 2;
	getDigit '\x136B' = Just 3;
	getDigit '\x136C' = Just 4;
	getDigit '\x136D' = Just 5;
	getDigit '\x136E' = Just 6;
	getDigit '\x136F' = Just 7;
	getDigit '\x1370' = Just 8;
	getDigit '\x1371' = Just 9;
	getDigit '\x17E0' = Just 0;
	getDigit '\x17E1' = Just 1;
	getDigit '\x17E2' = Just 2;
	getDigit '\x17E3' = Just 3;
	getDigit '\x17E4' = Just 4;
	getDigit '\x17E5' = Just 5;
	getDigit '\x17E6' = Just 6;
	getDigit '\x17E7' = Just 7;
	getDigit '\x17E8' = Just 8;
	getDigit '\x17E9' = Just 9;
	getDigit '\x1810' = Just 0;
	getDigit '\x1811' = Just 1;
	getDigit '\x1812' = Just 2;
	getDigit '\x1813' = Just 3;
	getDigit '\x1814' = Just 4;
	getDigit '\x1815' = Just 5;
	getDigit '\x1816' = Just 6;
	getDigit '\x1817' = Just 7;
	getDigit '\x1818' = Just 8;
	getDigit '\x1819' = Just 9;
	getDigit '\x2070' = Just 0;
	getDigit '\x2074' = Just 4;
	getDigit '\x2075' = Just 5;
	getDigit '\x2076' = Just 6;
	getDigit '\x2077' = Just 7;
	getDigit '\x2078' = Just 8;
	getDigit '\x2079' = Just 9;
	getDigit '\x2080' = Just 0;
	getDigit '\x2081' = Just 1;
	getDigit '\x2082' = Just 2;
	getDigit '\x2083' = Just 3;
	getDigit '\x2084' = Just 4;
	getDigit '\x2085' = Just 5;
	getDigit '\x2086' = Just 6;
	getDigit '\x2087' = Just 7;
	getDigit '\x2088' = Just 8;
	getDigit '\x2089' = Just 9;
	getDigit '\x2460' = Just 1;
	getDigit '\x2461' = Just 2;
	getDigit '\x2462' = Just 3;
	getDigit '\x2463' = Just 4;
	getDigit '\x2464' = Just 5;
	getDigit '\x2465' = Just 6;
	getDigit '\x2466' = Just 7;
	getDigit '\x2467' = Just 8;
	getDigit '\x2468' = Just 9;
	getDigit '\x2474' = Just 1;
	getDigit '\x2475' = Just 2;
	getDigit '\x2476' = Just 3;
	getDigit '\x2477' = Just 4;
	getDigit '\x2478' = Just 5;
	getDigit '\x2479' = Just 6;
	getDigit '\x247A' = Just 7;
	getDigit '\x247B' = Just 8;
	getDigit '\x247C' = Just 9;
	getDigit '\x2488' = Just 1;
	getDigit '\x2489' = Just 2;
	getDigit '\x248A' = Just 3;
	getDigit '\x248B' = Just 4;
	getDigit '\x248C' = Just 5;
	getDigit '\x248D' = Just 6;
	getDigit '\x248E' = Just 7;
	getDigit '\x248F' = Just 8;
	getDigit '\x2490' = Just 9;
	getDigit '\x24EA' = Just 0;
	getDigit '\x24F5' = Just 1;
	getDigit '\x24F6' = Just 2;
	getDigit '\x24F7' = Just 3;
	getDigit '\x24F8' = Just 4;
	getDigit '\x24F9' = Just 5;
	getDigit '\x24FA' = Just 6;
	getDigit '\x24FB' = Just 7;
	getDigit '\x24FC' = Just 8;
	getDigit '\x24FD' = Just 9;
	getDigit '\x2776' = Just 1;
	getDigit '\x2777' = Just 2;
	getDigit '\x2778' = Just 3;
	getDigit '\x2779' = Just 4;
	getDigit '\x277A' = Just 5;
	getDigit '\x277B' = Just 6;
	getDigit '\x277C' = Just 7;
	getDigit '\x277D' = Just 8;
	getDigit '\x277E' = Just 9;
	getDigit '\x2780' = Just 1;
	getDigit '\x2781' = Just 2;
	getDigit '\x2782' = Just 3;
	getDigit '\x2783' = Just 4;
	getDigit '\x2784' = Just 5;
	getDigit '\x2785' = Just 6;
	getDigit '\x2786' = Just 7;
	getDigit '\x2787' = Just 8;
	getDigit '\x2788' = Just 9;
	getDigit '\x278A' = Just 1;
	getDigit '\x278B' = Just 2;
	getDigit '\x278C' = Just 3;
	getDigit '\x278D' = Just 4;
	getDigit '\x278E' = Just 5;
	getDigit '\x278F' = Just 6;
	getDigit '\x2790' = Just 7;
	getDigit '\x2791' = Just 8;
	getDigit '\x2792' = Just 9;
	getDigit '\xFF10' = Just 0;
	getDigit '\xFF11' = Just 1;
	getDigit '\xFF12' = Just 2;
	getDigit '\xFF13' = Just 3;
	getDigit '\xFF14' = Just 4;
	getDigit '\xFF15' = Just 5;
	getDigit '\xFF16' = Just 6;
	getDigit '\xFF17' = Just 7;
	getDigit '\xFF18' = Just 8;
	getDigit '\xFF19' = Just 9;
	getDigit '\x1D7CE' = Just 0;
	getDigit '\x1D7CF' = Just 1;
	getDigit '\x1D7D0' = Just 2;
	getDigit '\x1D7D1' = Just 3;
	getDigit '\x1D7D2' = Just 4;
	getDigit '\x1D7D3' = Just 5;
	getDigit '\x1D7D4' = Just 6;
	getDigit '\x1D7D5' = Just 7;
	getDigit '\x1D7D6' = Just 8;
	getDigit '\x1D7D7' = Just 9;
	getDigit '\x1D7D8' = Just 0;
	getDigit '\x1D7D9' = Just 1;
	getDigit '\x1D7DA' = Just 2;
	getDigit '\x1D7DB' = Just 3;
	getDigit '\x1D7DC' = Just 4;
	getDigit '\x1D7DD' = Just 5;
	getDigit '\x1D7DE' = Just 6;
	getDigit '\x1D7DF' = Just 7;
	getDigit '\x1D7E0' = Just 8;
	getDigit '\x1D7E1' = Just 9;
	getDigit '\x1D7E2' = Just 0;
	getDigit '\x1D7E3' = Just 1;
	getDigit '\x1D7E4' = Just 2;
	getDigit '\x1D7E5' = Just 3;
	getDigit '\x1D7E6' = Just 4;
	getDigit '\x1D7E7' = Just 5;
	getDigit '\x1D7E8' = Just 6;
	getDigit '\x1D7E9' = Just 7;
	getDigit '\x1D7EA' = Just 8;
	getDigit '\x1D7EB' = Just 9;
	getDigit '\x1D7EC' = Just 0;
	getDigit '\x1D7ED' = Just 1;
	getDigit '\x1D7EE' = Just 2;
	getDigit '\x1D7EF' = Just 3;
	getDigit '\x1D7F0' = Just 4;
	getDigit '\x1D7F1' = Just 5;
	getDigit '\x1D7F2' = Just 6;
	getDigit '\x1D7F3' = Just 7;
	getDigit '\x1D7F4' = Just 8;
	getDigit '\x1D7F5' = Just 9;
	getDigit '\x1D7F6' = Just 0;
	getDigit '\x1D7F7' = Just 1;
	getDigit '\x1D7F8' = Just 2;
	getDigit '\x1D7F9' = Just 3;
	getDigit '\x1D7FA' = Just 4;
	getDigit '\x1D7FB' = Just 5;
	getDigit '\x1D7FC' = Just 6;
	getDigit '\x1D7FD' = Just 7;
	getDigit '\x1D7FE' = Just 8;
	getDigit '\x1D7FF' = Just 9;
	getDigit c = handleOmittedRange Nothing getDigit c;

	getNumber :: Char -> Maybe Rational;
	getNumber '\x0030' = Just (0);
	getNumber '\x0031' = Just (1);
	getNumber '\x0032' = Just (2);
	getNumber '\x0033' = Just (3);
	getNumber '\x0034' = Just (4);
	getNumber '\x0035' = Just (5);
	getNumber '\x0036' = Just (6);
	getNumber '\x0037' = Just (7);
	getNumber '\x0038' = Just (8);
	getNumber '\x0039' = Just (9);
	getNumber '\x00B2' = Just (2);
	getNumber '\x00B3' = Just (3);
	getNumber '\x00B9' = Just (1);
	getNumber '\x00BC' = Just (1/4);
	getNumber '\x00BD' = Just (1/2);
	getNumber '\x00BE' = Just (3/4);
	getNumber '\x0660' = Just (0);
	getNumber '\x0661' = Just (1);
	getNumber '\x0662' = Just (2);
	getNumber '\x0663' = Just (3);
	getNumber '\x0664' = Just (4);
	getNumber '\x0665' = Just (5);
	getNumber '\x0666' = Just (6);
	getNumber '\x0667' = Just (7);
	getNumber '\x0668' = Just (8);
	getNumber '\x0669' = Just (9);
	getNumber '\x06F0' = Just (0);
	getNumber '\x06F1' = Just (1);
	getNumber '\x06F2' = Just (2);
	getNumber '\x06F3' = Just (3);
	getNumber '\x06F4' = Just (4);
	getNumber '\x06F5' = Just (5);
	getNumber '\x06F6' = Just (6);
	getNumber '\x06F7' = Just (7);
	getNumber '\x06F8' = Just (8);
	getNumber '\x06F9' = Just (9);
	getNumber '\x0966' = Just (0);
	getNumber '\x0967' = Just (1);
	getNumber '\x0968' = Just (2);
	getNumber '\x0969' = Just (3);
	getNumber '\x096A' = Just (4);
	getNumber '\x096B' = Just (5);
	getNumber '\x096C' = Just (6);
	getNumber '\x096D' = Just (7);
	getNumber '\x096E' = Just (8);
	getNumber '\x096F' = Just (9);
	getNumber '\x09E6' = Just (0);
	getNumber '\x09E7' = Just (1);
	getNumber '\x09E8' = Just (2);
	getNumber '\x09E9' = Just (3);
	getNumber '\x09EA' = Just (4);
	getNumber '\x09EB' = Just (5);
	getNumber '\x09EC' = Just (6);
	getNumber '\x09ED' = Just (7);
	getNumber '\x09EE' = Just (8);
	getNumber '\x09EF' = Just (9);
	getNumber '\x09F4' = Just (1);
	getNumber '\x09F5' = Just (2);
	getNumber '\x09F6' = Just (3);
	getNumber '\x09F7' = Just (4);
	getNumber '\x09F9' = Just (16);
	getNumber '\x0A66' = Just (0);
	getNumber '\x0A67' = Just (1);
	getNumber '\x0A68' = Just (2);
	getNumber '\x0A69' = Just (3);
	getNumber '\x0A6A' = Just (4);
	getNumber '\x0A6B' = Just (5);
	getNumber '\x0A6C' = Just (6);
	getNumber '\x0A6D' = Just (7);
	getNumber '\x0A6E' = Just (8);
	getNumber '\x0A6F' = Just (9);
	getNumber '\x0AE6' = Just (0);
	getNumber '\x0AE7' = Just (1);
	getNumber '\x0AE8' = Just (2);
	getNumber '\x0AE9' = Just (3);
	getNumber '\x0AEA' = Just (4);
	getNumber '\x0AEB' = Just (5);
	getNumber '\x0AEC' = Just (6);
	getNumber '\x0AED' = Just (7);
	getNumber '\x0AEE' = Just (8);
	getNumber '\x0AEF' = Just (9);
	getNumber '\x0B66' = Just (0);
	getNumber '\x0B67' = Just (1);
	getNumber '\x0B68' = Just (2);
	getNumber '\x0B69' = Just (3);
	getNumber '\x0B6A' = Just (4);
	getNumber '\x0B6B' = Just (5);
	getNumber '\x0B6C' = Just (6);
	getNumber '\x0B6D' = Just (7);
	getNumber '\x0B6E' = Just (8);
	getNumber '\x0B6F' = Just (9);
	getNumber '\x0BE7' = Just (1);
	getNumber '\x0BE8' = Just (2);
	getNumber '\x0BE9' = Just (3);
	getNumber '\x0BEA' = Just (4);
	getNumber '\x0BEB' = Just (5);
	getNumber '\x0BEC' = Just (6);
	getNumber '\x0BED' = Just (7);
	getNumber '\x0BEE' = Just (8);
	getNumber '\x0BEF' = Just (9);
	getNumber '\x0BF0' = Just (10);
	getNumber '\x0BF1' = Just (100);
	getNumber '\x0BF2' = Just (1000);
	getNumber '\x0C66' = Just (0);
	getNumber '\x0C67' = Just (1);
	getNumber '\x0C68' = Just (2);
	getNumber '\x0C69' = Just (3);
	getNumber '\x0C6A' = Just (4);
	getNumber '\x0C6B' = Just (5);
	getNumber '\x0C6C' = Just (6);
	getNumber '\x0C6D' = Just (7);
	getNumber '\x0C6E' = Just (8);
	getNumber '\x0C6F' = Just (9);
	getNumber '\x0CE6' = Just (0);
	getNumber '\x0CE7' = Just (1);
	getNumber '\x0CE8' = Just (2);
	getNumber '\x0CE9' = Just (3);
	getNumber '\x0CEA' = Just (4);
	getNumber '\x0CEB' = Just (5);
	getNumber '\x0CEC' = Just (6);
	getNumber '\x0CED' = Just (7);
	getNumber '\x0CEE' = Just (8);
	getNumber '\x0CEF' = Just (9);
	getNumber '\x0D66' = Just (0);
	getNumber '\x0D67' = Just (1);
	getNumber '\x0D68' = Just (2);
	getNumber '\x0D69' = Just (3);
	getNumber '\x0D6A' = Just (4);
	getNumber '\x0D6B' = Just (5);
	getNumber '\x0D6C' = Just (6);
	getNumber '\x0D6D' = Just (7);
	getNumber '\x0D6E' = Just (8);
	getNumber '\x0D6F' = Just (9);
	getNumber '\x0E50' = Just (0);
	getNumber '\x0E51' = Just (1);
	getNumber '\x0E52' = Just (2);
	getNumber '\x0E53' = Just (3);
	getNumber '\x0E54' = Just (4);
	getNumber '\x0E55' = Just (5);
	getNumber '\x0E56' = Just (6);
	getNumber '\x0E57' = Just (7);
	getNumber '\x0E58' = Just (8);
	getNumber '\x0E59' = Just (9);
	getNumber '\x0ED0' = Just (0);
	getNumber '\x0ED1' = Just (1);
	getNumber '\x0ED2' = Just (2);
	getNumber '\x0ED3' = Just (3);
	getNumber '\x0ED4' = Just (4);
	getNumber '\x0ED5' = Just (5);
	getNumber '\x0ED6' = Just (6);
	getNumber '\x0ED7' = Just (7);
	getNumber '\x0ED8' = Just (8);
	getNumber '\x0ED9' = Just (9);
	getNumber '\x0F20' = Just (0);
	getNumber '\x0F21' = Just (1);
	getNumber '\x0F22' = Just (2);
	getNumber '\x0F23' = Just (3);
	getNumber '\x0F24' = Just (4);
	getNumber '\x0F25' = Just (5);
	getNumber '\x0F26' = Just (6);
	getNumber '\x0F27' = Just (7);
	getNumber '\x0F28' = Just (8);
	getNumber '\x0F29' = Just (9);
	getNumber '\x0F2A' = Just (1/2);
	getNumber '\x0F2B' = Just (3/2);
	getNumber '\x0F2C' = Just (5/2);
	getNumber '\x0F2D' = Just (7/2);
	getNumber '\x0F2E' = Just (9/2);
	getNumber '\x0F2F' = Just (11/2);
	getNumber '\x0F30' = Just (13/2);
	getNumber '\x0F31' = Just (15/2);
	getNumber '\x0F32' = Just (17/2);
	getNumber '\x0F33' = Just (-1/2);
	getNumber '\x1040' = Just (0);
	getNumber '\x1041' = Just (1);
	getNumber '\x1042' = Just (2);
	getNumber '\x1043' = Just (3);
	getNumber '\x1044' = Just (4);
	getNumber '\x1045' = Just (5);
	getNumber '\x1046' = Just (6);
	getNumber '\x1047' = Just (7);
	getNumber '\x1048' = Just (8);
	getNumber '\x1049' = Just (9);
	getNumber '\x1369' = Just (1);
	getNumber '\x136A' = Just (2);
	getNumber '\x136B' = Just (3);
	getNumber '\x136C' = Just (4);
	getNumber '\x136D' = Just (5);
	getNumber '\x136E' = Just (6);
	getNumber '\x136F' = Just (7);
	getNumber '\x1370' = Just (8);
	getNumber '\x1371' = Just (9);
	getNumber '\x1372' = Just (10);
	getNumber '\x1373' = Just (20);
	getNumber '\x1374' = Just (30);
	getNumber '\x1375' = Just (40);
	getNumber '\x1376' = Just (50);
	getNumber '\x1377' = Just (60);
	getNumber '\x1378' = Just (70);
	getNumber '\x1379' = Just (80);
	getNumber '\x137A' = Just (90);
	getNumber '\x137B' = Just (100);
	getNumber '\x137C' = Just (10000);
	getNumber '\x16EE' = Just (17);
	getNumber '\x16EF' = Just (18);
	getNumber '\x16F0' = Just (19);
	getNumber '\x17E0' = Just (0);
	getNumber '\x17E1' = Just (1);
	getNumber '\x17E2' = Just (2);
	getNumber '\x17E3' = Just (3);
	getNumber '\x17E4' = Just (4);
	getNumber '\x17E5' = Just (5);
	getNumber '\x17E6' = Just (6);
	getNumber '\x17E7' = Just (7);
	getNumber '\x17E8' = Just (8);
	getNumber '\x17E9' = Just (9);
	getNumber '\x1810' = Just (0);
	getNumber '\x1811' = Just (1);
	getNumber '\x1812' = Just (2);
	getNumber '\x1813' = Just (3);
	getNumber '\x1814' = Just (4);
	getNumber '\x1815' = Just (5);
	getNumber '\x1816' = Just (6);
	getNumber '\x1817' = Just (7);
	getNumber '\x1818' = Just (8);
	getNumber '\x1819' = Just (9);
	getNumber '\x2070' = Just (0);
	getNumber '\x2074' = Just (4);
	getNumber '\x2075' = Just (5);
	getNumber '\x2076' = Just (6);
	getNumber '\x2077' = Just (7);
	getNumber '\x2078' = Just (8);
	getNumber '\x2079' = Just (9);
	getNumber '\x2080' = Just (0);
	getNumber '\x2081' = Just (1);
	getNumber '\x2082' = Just (2);
	getNumber '\x2083' = Just (3);
	getNumber '\x2084' = Just (4);
	getNumber '\x2085' = Just (5);
	getNumber '\x2086' = Just (6);
	getNumber '\x2087' = Just (7);
	getNumber '\x2088' = Just (8);
	getNumber '\x2089' = Just (9);
	getNumber '\x2153' = Just (1/3);
	getNumber '\x2154' = Just (2/3);
	getNumber '\x2155' = Just (1/5);
	getNumber '\x2156' = Just (2/5);
	getNumber '\x2157' = Just (3/5);
	getNumber '\x2158' = Just (4/5);
	getNumber '\x2159' = Just (1/6);
	getNumber '\x215A' = Just (5/6);
	getNumber '\x215B' = Just (1/8);
	getNumber '\x215C' = Just (3/8);
	getNumber '\x215D' = Just (5/8);
	getNumber '\x215E' = Just (7/8);
	getNumber '\x215F' = Just (1);
	getNumber '\x2160' = Just (1);
	getNumber '\x2161' = Just (2);
	getNumber '\x2162' = Just (3);
	getNumber '\x2163' = Just (4);
	getNumber '\x2164' = Just (5);
	getNumber '\x2165' = Just (6);
	getNumber '\x2166' = Just (7);
	getNumber '\x2167' = Just (8);
	getNumber '\x2168' = Just (9);
	getNumber '\x2169' = Just (10);
	getNumber '\x216A' = Just (11);
	getNumber '\x216B' = Just (12);
	getNumber '\x216C' = Just (50);
	getNumber '\x216D' = Just (100);
	getNumber '\x216E' = Just (500);
	getNumber '\x216F' = Just (1000);
	getNumber '\x2170' = Just (1);
	getNumber '\x2171' = Just (2);
	getNumber '\x2172' = Just (3);
	getNumber '\x2173' = Just (4);
	getNumber '\x2174' = Just (5);
	getNumber '\x2175' = Just (6);
	getNumber '\x2176' = Just (7);
	getNumber '\x2177' = Just (8);
	getNumber '\x2178' = Just (9);
	getNumber '\x2179' = Just (10);
	getNumber '\x217A' = Just (11);
	getNumber '\x217B' = Just (12);
	getNumber '\x217C' = Just (50);
	getNumber '\x217D' = Just (100);
	getNumber '\x217E' = Just (500);
	getNumber '\x217F' = Just (1000);
	getNumber '\x2180' = Just (1000);
	getNumber '\x2181' = Just (5000);
	getNumber '\x2182' = Just (10000);
	getNumber '\x2460' = Just (1);
	getNumber '\x2461' = Just (2);
	getNumber '\x2462' = Just (3);
	getNumber '\x2463' = Just (4);
	getNumber '\x2464' = Just (5);
	getNumber '\x2465' = Just (6);
	getNumber '\x2466' = Just (7);
	getNumber '\x2467' = Just (8);
	getNumber '\x2468' = Just (9);
	getNumber '\x2469' = Just (10);
	getNumber '\x246A' = Just (11);
	getNumber '\x246B' = Just (12);
	getNumber '\x246C' = Just (13);
	getNumber '\x246D' = Just (14);
	getNumber '\x246E' = Just (15);
	getNumber '\x246F' = Just (16);
	getNumber '\x2470' = Just (17);
	getNumber '\x2471' = Just (18);
	getNumber '\x2472' = Just (19);
	getNumber '\x2473' = Just (20);
	getNumber '\x2474' = Just (1);
	getNumber '\x2475' = Just (2);
	getNumber '\x2476' = Just (3);
	getNumber '\x2477' = Just (4);
	getNumber '\x2478' = Just (5);
	getNumber '\x2479' = Just (6);
	getNumber '\x247A' = Just (7);
	getNumber '\x247B' = Just (8);
	getNumber '\x247C' = Just (9);
	getNumber '\x247D' = Just (10);
	getNumber '\x247E' = Just (11);
	getNumber '\x247F' = Just (12);
	getNumber '\x2480' = Just (13);
	getNumber '\x2481' = Just (14);
	getNumber '\x2482' = Just (15);
	getNumber '\x2483' = Just (16);
	getNumber '\x2484' = Just (17);
	getNumber '\x2485' = Just (18);
	getNumber '\x2486' = Just (19);
	getNumber '\x2487' = Just (20);
	getNumber '\x2488' = Just (1);
	getNumber '\x2489' = Just (2);
	getNumber '\x248A' = Just (3);
	getNumber '\x248B' = Just (4);
	getNumber '\x248C' = Just (5);
	getNumber '\x248D' = Just (6);
	getNumber '\x248E' = Just (7);
	getNumber '\x248F' = Just (8);
	getNumber '\x2490' = Just (9);
	getNumber '\x2491' = Just (10);
	getNumber '\x2492' = Just (11);
	getNumber '\x2493' = Just (12);
	getNumber '\x2494' = Just (13);
	getNumber '\x2495' = Just (14);
	getNumber '\x2496' = Just (15);
	getNumber '\x2497' = Just (16);
	getNumber '\x2498' = Just (17);
	getNumber '\x2499' = Just (18);
	getNumber '\x249A' = Just (19);
	getNumber '\x249B' = Just (20);
	getNumber '\x24EA' = Just (0);
	getNumber '\x24EB' = Just (11);
	getNumber '\x24EC' = Just (12);
	getNumber '\x24ED' = Just (13);
	getNumber '\x24EE' = Just (14);
	getNumber '\x24EF' = Just (15);
	getNumber '\x24F0' = Just (16);
	getNumber '\x24F1' = Just (17);
	getNumber '\x24F2' = Just (18);
	getNumber '\x24F3' = Just (19);
	getNumber '\x24F4' = Just (20);
	getNumber '\x24F5' = Just (1);
	getNumber '\x24F6' = Just (2);
	getNumber '\x24F7' = Just (3);
	getNumber '\x24F8' = Just (4);
	getNumber '\x24F9' = Just (5);
	getNumber '\x24FA' = Just (6);
	getNumber '\x24FB' = Just (7);
	getNumber '\x24FC' = Just (8);
	getNumber '\x24FD' = Just (9);
	getNumber '\x24FE' = Just (10);
	getNumber '\x2776' = Just (1);
	getNumber '\x2777' = Just (2);
	getNumber '\x2778' = Just (3);
	getNumber '\x2779' = Just (4);
	getNumber '\x277A' = Just (5);
	getNumber '\x277B' = Just (6);
	getNumber '\x277C' = Just (7);
	getNumber '\x277D' = Just (8);
	getNumber '\x277E' = Just (9);
	getNumber '\x277F' = Just (10);
	getNumber '\x2780' = Just (1);
	getNumber '\x2781' = Just (2);
	getNumber '\x2782' = Just (3);
	getNumber '\x2783' = Just (4);
	getNumber '\x2784' = Just (5);
	getNumber '\x2785' = Just (6);
	getNumber '\x2786' = Just (7);
	getNumber '\x2787' = Just (8);
	getNumber '\x2788' = Just (9);
	getNumber '\x2789' = Just (10);
	getNumber '\x278A' = Just (1);
	getNumber '\x278B' = Just (2);
	getNumber '\x278C' = Just (3);
	getNumber '\x278D' = Just (4);
	getNumber '\x278E' = Just (5);
	getNumber '\x278F' = Just (6);
	getNumber '\x2790' = Just (7);
	getNumber '\x2791' = Just (8);
	getNumber '\x2792' = Just (9);
	getNumber '\x2793' = Just (10);
	getNumber '\x3007' = Just (0);
	getNumber '\x3021' = Just (1);
	getNumber '\x3022' = Just (2);
	getNumber '\x3023' = Just (3);
	getNumber '\x3024' = Just (4);
	getNumber '\x3025' = Just (5);
	getNumber '\x3026' = Just (6);
	getNumber '\x3027' = Just (7);
	getNumber '\x3028' = Just (8);
	getNumber '\x3029' = Just (9);
	getNumber '\x3038' = Just (10);
	getNumber '\x3039' = Just (20);
	getNumber '\x303A' = Just (30);
	getNumber '\x3192' = Just (1);
	getNumber '\x3193' = Just (2);
	getNumber '\x3194' = Just (3);
	getNumber '\x3195' = Just (4);
	getNumber '\x3220' = Just (1);
	getNumber '\x3221' = Just (2);
	getNumber '\x3222' = Just (3);
	getNumber '\x3223' = Just (4);
	getNumber '\x3224' = Just (5);
	getNumber '\x3225' = Just (6);
	getNumber '\x3226' = Just (7);
	getNumber '\x3227' = Just (8);
	getNumber '\x3228' = Just (9);
	getNumber '\x3229' = Just (10);
	getNumber '\x3251' = Just (21);
	getNumber '\x3252' = Just (22);
	getNumber '\x3253' = Just (23);
	getNumber '\x3254' = Just (24);
	getNumber '\x3255' = Just (25);
	getNumber '\x3256' = Just (26);
	getNumber '\x3257' = Just (27);
	getNumber '\x3258' = Just (28);
	getNumber '\x3259' = Just (29);
	getNumber '\x325A' = Just (30);
	getNumber '\x325B' = Just (31);
	getNumber '\x325C' = Just (32);
	getNumber '\x325D' = Just (33);
	getNumber '\x325E' = Just (34);
	getNumber '\x325F' = Just (35);
	getNumber '\x3280' = Just (1);
	getNumber '\x3281' = Just (2);
	getNumber '\x3282' = Just (3);
	getNumber '\x3283' = Just (4);
	getNumber '\x3284' = Just (5);
	getNumber '\x3285' = Just (6);
	getNumber '\x3286' = Just (7);
	getNumber '\x3287' = Just (8);
	getNumber '\x3288' = Just (9);
	getNumber '\x3289' = Just (10);
	getNumber '\x32B1' = Just (36);
	getNumber '\x32B2' = Just (37);
	getNumber '\x32B3' = Just (38);
	getNumber '\x32B4' = Just (39);
	getNumber '\x32B5' = Just (40);
	getNumber '\x32B6' = Just (41);
	getNumber '\x32B7' = Just (42);
	getNumber '\x32B8' = Just (43);
	getNumber '\x32B9' = Just (44);
	getNumber '\x32BA' = Just (45);
	getNumber '\x32BB' = Just (46);
	getNumber '\x32BC' = Just (47);
	getNumber '\x32BD' = Just (48);
	getNumber '\x32BE' = Just (49);
	getNumber '\x32BF' = Just (50);
	getNumber '\xFF10' = Just (0);
	getNumber '\xFF11' = Just (1);
	getNumber '\xFF12' = Just (2);
	getNumber '\xFF13' = Just (3);
	getNumber '\xFF14' = Just (4);
	getNumber '\xFF15' = Just (5);
	getNumber '\xFF16' = Just (6);
	getNumber '\xFF17' = Just (7);
	getNumber '\xFF18' = Just (8);
	getNumber '\xFF19' = Just (9);
	getNumber '\x10320' = Just (1);
	getNumber '\x10321' = Just (5);
	getNumber '\x10322' = Just (10);
	getNumber '\x10323' = Just (50);
	getNumber '\x1D7CE' = Just (0);
	getNumber '\x1D7CF' = Just (1);
	getNumber '\x1D7D0' = Just (2);
	getNumber '\x1D7D1' = Just (3);
	getNumber '\x1D7D2' = Just (4);
	getNumber '\x1D7D3' = Just (5);
	getNumber '\x1D7D4' = Just (6);
	getNumber '\x1D7D5' = Just (7);
	getNumber '\x1D7D6' = Just (8);
	getNumber '\x1D7D7' = Just (9);
	getNumber '\x1D7D8' = Just (0);
	getNumber '\x1D7D9' = Just (1);
	getNumber '\x1D7DA' = Just (2);
	getNumber '\x1D7DB' = Just (3);
	getNumber '\x1D7DC' = Just (4);
	getNumber '\x1D7DD' = Just (5);
	getNumber '\x1D7DE' = Just (6);
	getNumber '\x1D7DF' = Just (7);
	getNumber '\x1D7E0' = Just (8);
	getNumber '\x1D7E1' = Just (9);
	getNumber '\x1D7E2' = Just (0);
	getNumber '\x1D7E3' = Just (1);
	getNumber '\x1D7E4' = Just (2);
	getNumber '\x1D7E5' = Just (3);
	getNumber '\x1D7E6' = Just (4);
	getNumber '\x1D7E7' = Just (5);
	getNumber '\x1D7E8' = Just (6);
	getNumber '\x1D7E9' = Just (7);
	getNumber '\x1D7EA' = Just (8);
	getNumber '\x1D7EB' = Just (9);
	getNumber '\x1D7EC' = Just (0);
	getNumber '\x1D7ED' = Just (1);
	getNumber '\x1D7EE' = Just (2);
	getNumber '\x1D7EF' = Just (3);
	getNumber '\x1D7F0' = Just (4);
	getNumber '\x1D7F1' = Just (5);
	getNumber '\x1D7F2' = Just (6);
	getNumber '\x1D7F3' = Just (7);
	getNumber '\x1D7F4' = Just (8);
	getNumber '\x1D7F5' = Just (9);
	getNumber '\x1D7F6' = Just (0);
	getNumber '\x1D7F7' = Just (1);
	getNumber '\x1D7F8' = Just (2);
	getNumber '\x1D7F9' = Just (3);
	getNumber '\x1D7FA' = Just (4);
	getNumber '\x1D7FB' = Just (5);
	getNumber '\x1D7FC' = Just (6);
	getNumber '\x1D7FD' = Just (7);
	getNumber '\x1D7FE' = Just (8);
	getNumber '\x1D7FF' = Just (9);
	getNumber c = handleOmittedRange Nothing getNumber c;

	isMirrored :: Char -> Bool;
	isMirrored '\x0028' = True;
	isMirrored '\x0029' = True;
	isMirrored '\x003C' = True;
	isMirrored '\x003E' = True;
	isMirrored '\x005B' = True;
	isMirrored '\x005D' = True;
	isMirrored '\x007B' = True;
	isMirrored '\x007D' = True;
	isMirrored '\x00AB' = True;
	isMirrored '\x00BB' = True;
	isMirrored '\x2039' = True;
	isMirrored '\x203A' = True;
	isMirrored '\x2045' = True;
	isMirrored '\x2046' = True;
	isMirrored '\x207D' = True;
	isMirrored '\x207E' = True;
	isMirrored '\x208D' = True;
	isMirrored '\x208E' = True;
	isMirrored '\x2140' = True;
	isMirrored '\x2201' = True;
	isMirrored '\x2202' = True;
	isMirrored '\x2203' = True;
	isMirrored '\x2204' = True;
	isMirrored '\x2208' = True;
	isMirrored '\x2209' = True;
	isMirrored '\x220A' = True;
	isMirrored '\x220B' = True;
	isMirrored '\x220C' = True;
	isMirrored '\x220D' = True;
	isMirrored '\x2211' = True;
	isMirrored '\x2215' = True;
	isMirrored '\x2216' = True;
	isMirrored '\x221A' = True;
	isMirrored '\x221B' = True;
	isMirrored '\x221C' = True;
	isMirrored '\x221D' = True;
	isMirrored '\x221F' = True;
	isMirrored '\x2220' = True;
	isMirrored '\x2221' = True;
	isMirrored '\x2222' = True;
	isMirrored '\x2224' = True;
	isMirrored '\x2226' = True;
	isMirrored '\x222B' = True;
	isMirrored '\x222C' = True;
	isMirrored '\x222D' = True;
	isMirrored '\x222E' = True;
	isMirrored '\x222F' = True;
	isMirrored '\x2230' = True;
	isMirrored '\x2231' = True;
	isMirrored '\x2232' = True;
	isMirrored '\x2233' = True;
	isMirrored '\x2239' = True;
	isMirrored '\x223B' = True;
	isMirrored '\x223C' = True;
	isMirrored '\x223D' = True;
	isMirrored '\x223E' = True;
	isMirrored '\x223F' = True;
	isMirrored '\x2240' = True;
	isMirrored '\x2241' = True;
	isMirrored '\x2242' = True;
	isMirrored '\x2243' = True;
	isMirrored '\x2244' = True;
	isMirrored '\x2245' = True;
	isMirrored '\x2246' = True;
	isMirrored '\x2247' = True;
	isMirrored '\x2248' = True;
	isMirrored '\x2249' = True;
	isMirrored '\x224A' = True;
	isMirrored '\x224B' = True;
	isMirrored '\x224C' = True;
	isMirrored '\x2252' = True;
	isMirrored '\x2253' = True;
	isMirrored '\x2254' = True;
	isMirrored '\x2255' = True;
	isMirrored '\x225F' = True;
	isMirrored '\x2260' = True;
	isMirrored '\x2262' = True;
	isMirrored '\x2264' = True;
	isMirrored '\x2265' = True;
	isMirrored '\x2266' = True;
	isMirrored '\x2267' = True;
	isMirrored '\x2268' = True;
	isMirrored '\x2269' = True;
	isMirrored '\x226A' = True;
	isMirrored '\x226B' = True;
	isMirrored '\x226E' = True;
	isMirrored '\x226F' = True;
	isMirrored '\x2270' = True;
	isMirrored '\x2271' = True;
	isMirrored '\x2272' = True;
	isMirrored '\x2273' = True;
	isMirrored '\x2274' = True;
	isMirrored '\x2275' = True;
	isMirrored '\x2276' = True;
	isMirrored '\x2277' = True;
	isMirrored '\x2278' = True;
	isMirrored '\x2279' = True;
	isMirrored '\x227A' = True;
	isMirrored '\x227B' = True;
	isMirrored '\x227C' = True;
	isMirrored '\x227D' = True;
	isMirrored '\x227E' = True;
	isMirrored '\x227F' = True;
	isMirrored '\x2280' = True;
	isMirrored '\x2281' = True;
	isMirrored '\x2282' = True;
	isMirrored '\x2283' = True;
	isMirrored '\x2284' = True;
	isMirrored '\x2285' = True;
	isMirrored '\x2286' = True;
	isMirrored '\x2287' = True;
	isMirrored '\x2288' = True;
	isMirrored '\x2289' = True;
	isMirrored '\x228A' = True;
	isMirrored '\x228B' = True;
	isMirrored '\x228C' = True;
	isMirrored '\x228F' = True;
	isMirrored '\x2290' = True;
	isMirrored '\x2291' = True;
	isMirrored '\x2292' = True;
	isMirrored '\x2298' = True;
	isMirrored '\x22A2' = True;
	isMirrored '\x22A3' = True;
	isMirrored '\x22A6' = True;
	isMirrored '\x22A7' = True;
	isMirrored '\x22A8' = True;
	isMirrored '\x22A9' = True;
	isMirrored '\x22AA' = True;
	isMirrored '\x22AB' = True;
	isMirrored '\x22AC' = True;
	isMirrored '\x22AD' = True;
	isMirrored '\x22AE' = True;
	isMirrored '\x22AF' = True;
	isMirrored '\x22B0' = True;
	isMirrored '\x22B1' = True;
	isMirrored '\x22B2' = True;
	isMirrored '\x22B3' = True;
	isMirrored '\x22B4' = True;
	isMirrored '\x22B5' = True;
	isMirrored '\x22B6' = True;
	isMirrored '\x22B7' = True;
	isMirrored '\x22B8' = True;
	isMirrored '\x22BE' = True;
	isMirrored '\x22BF' = True;
	isMirrored '\x22C9' = True;
	isMirrored '\x22CA' = True;
	isMirrored '\x22CB' = True;
	isMirrored '\x22CC' = True;
	isMirrored '\x22CD' = True;
	isMirrored '\x22D0' = True;
	isMirrored '\x22D1' = True;
	isMirrored '\x22D6' = True;
	isMirrored '\x22D7' = True;
	isMirrored '\x22D8' = True;
	isMirrored '\x22D9' = True;
	isMirrored '\x22DA' = True;
	isMirrored '\x22DB' = True;
	isMirrored '\x22DC' = True;
	isMirrored '\x22DD' = True;
	isMirrored '\x22DE' = True;
	isMirrored '\x22DF' = True;
	isMirrored '\x22E0' = True;
	isMirrored '\x22E1' = True;
	isMirrored '\x22E2' = True;
	isMirrored '\x22E3' = True;
	isMirrored '\x22E4' = True;
	isMirrored '\x22E5' = True;
	isMirrored '\x22E6' = True;
	isMirrored '\x22E7' = True;
	isMirrored '\x22E8' = True;
	isMirrored '\x22E9' = True;
	isMirrored '\x22EA' = True;
	isMirrored '\x22EB' = True;
	isMirrored '\x22EC' = True;
	isMirrored '\x22ED' = True;
	isMirrored '\x22F0' = True;
	isMirrored '\x22F1' = True;
	isMirrored '\x22F2' = True;
	isMirrored '\x22F3' = True;
	isMirrored '\x22F4' = True;
	isMirrored '\x22F5' = True;
	isMirrored '\x22F6' = True;
	isMirrored '\x22F7' = True;
	isMirrored '\x22F8' = True;
	isMirrored '\x22F9' = True;
	isMirrored '\x22FA' = True;
	isMirrored '\x22FB' = True;
	isMirrored '\x22FC' = True;
	isMirrored '\x22FD' = True;
	isMirrored '\x22FE' = True;
	isMirrored '\x22FF' = True;
	isMirrored '\x2308' = True;
	isMirrored '\x2309' = True;
	isMirrored '\x230A' = True;
	isMirrored '\x230B' = True;
	isMirrored '\x2320' = True;
	isMirrored '\x2321' = True;
	isMirrored '\x2329' = True;
	isMirrored '\x232A' = True;
	isMirrored '\x2768' = True;
	isMirrored '\x2769' = True;
	isMirrored '\x276A' = True;
	isMirrored '\x276B' = True;
	isMirrored '\x276C' = True;
	isMirrored '\x276D' = True;
	isMirrored '\x276E' = True;
	isMirrored '\x276F' = True;
	isMirrored '\x2770' = True;
	isMirrored '\x2771' = True;
	isMirrored '\x2772' = True;
	isMirrored '\x2773' = True;
	isMirrored '\x2774' = True;
	isMirrored '\x2775' = True;
	isMirrored '\x27D3' = True;
	isMirrored '\x27D4' = True;
	isMirrored '\x27D5' = True;
	isMirrored '\x27D6' = True;
	isMirrored '\x27DC' = True;
	isMirrored '\x27DD' = True;
	isMirrored '\x27DE' = True;
	isMirrored '\x27E2' = True;
	isMirrored '\x27E3' = True;
	isMirrored '\x27E4' = True;
	isMirrored '\x27E5' = True;
	isMirrored '\x27E6' = True;
	isMirrored '\x27E7' = True;
	isMirrored '\x27E8' = True;
	isMirrored '\x27E9' = True;
	isMirrored '\x27EA' = True;
	isMirrored '\x27EB' = True;
	isMirrored '\x2983' = True;
	isMirrored '\x2984' = True;
	isMirrored '\x2985' = True;
	isMirrored '\x2986' = True;
	isMirrored '\x2987' = True;
	isMirrored '\x2988' = True;
	isMirrored '\x2989' = True;
	isMirrored '\x298A' = True;
	isMirrored '\x298B' = True;
	isMirrored '\x298C' = True;
	isMirrored '\x298D' = True;
	isMirrored '\x298E' = True;
	isMirrored '\x298F' = True;
	isMirrored '\x2990' = True;
	isMirrored '\x2991' = True;
	isMirrored '\x2992' = True;
	isMirrored '\x2993' = True;
	isMirrored '\x2994' = True;
	isMirrored '\x2995' = True;
	isMirrored '\x2996' = True;
	isMirrored '\x2997' = True;
	isMirrored '\x2998' = True;
	isMirrored '\x299B' = True;
	isMirrored '\x299C' = True;
	isMirrored '\x299D' = True;
	isMirrored '\x299E' = True;
	isMirrored '\x299F' = True;
	isMirrored '\x29A0' = True;
	isMirrored '\x29A1' = True;
	isMirrored '\x29A2' = True;
	isMirrored '\x29A3' = True;
	isMirrored '\x29A4' = True;
	isMirrored '\x29A5' = True;
	isMirrored '\x29A6' = True;
	isMirrored '\x29A7' = True;
	isMirrored '\x29A8' = True;
	isMirrored '\x29A9' = True;
	isMirrored '\x29AA' = True;
	isMirrored '\x29AB' = True;
	isMirrored '\x29AC' = True;
	isMirrored '\x29AD' = True;
	isMirrored '\x29AE' = True;
	isMirrored '\x29AF' = True;
	isMirrored '\x29B8' = True;
	isMirrored '\x29C0' = True;
	isMirrored '\x29C1' = True;
	isMirrored '\x29C2' = True;
	isMirrored '\x29C3' = True;
	isMirrored '\x29C4' = True;
	isMirrored '\x29C5' = True;
	isMirrored '\x29C9' = True;
	isMirrored '\x29CE' = True;
	isMirrored '\x29CF' = True;
	isMirrored '\x29D0' = True;
	isMirrored '\x29D1' = True;
	isMirrored '\x29D2' = True;
	isMirrored '\x29D4' = True;
	isMirrored '\x29D5' = True;
	isMirrored '\x29D8' = True;
	isMirrored '\x29D9' = True;
	isMirrored '\x29DA' = True;
	isMirrored '\x29DB' = True;
	isMirrored '\x29DC' = True;
	isMirrored '\x29E1' = True;
	isMirrored '\x29E3' = True;
	isMirrored '\x29E4' = True;
	isMirrored '\x29E5' = True;
	isMirrored '\x29E8' = True;
	isMirrored '\x29E9' = True;
	isMirrored '\x29F4' = True;
	isMirrored '\x29F5' = True;
	isMirrored '\x29F6' = True;
	isMirrored '\x29F7' = True;
	isMirrored '\x29F8' = True;
	isMirrored '\x29F9' = True;
	isMirrored '\x29FC' = True;
	isMirrored '\x29FD' = True;
	isMirrored '\x2A0A' = True;
	isMirrored '\x2A0B' = True;
	isMirrored '\x2A0C' = True;
	isMirrored '\x2A0D' = True;
	isMirrored '\x2A0E' = True;
	isMirrored '\x2A0F' = True;
	isMirrored '\x2A10' = True;
	isMirrored '\x2A11' = True;
	isMirrored '\x2A12' = True;
	isMirrored '\x2A13' = True;
	isMirrored '\x2A14' = True;
	isMirrored '\x2A15' = True;
	isMirrored '\x2A16' = True;
	isMirrored '\x2A17' = True;
	isMirrored '\x2A18' = True;
	isMirrored '\x2A19' = True;
	isMirrored '\x2A1A' = True;
	isMirrored '\x2A1B' = True;
	isMirrored '\x2A1C' = True;
	isMirrored '\x2A1E' = True;
	isMirrored '\x2A1F' = True;
	isMirrored '\x2A20' = True;
	isMirrored '\x2A21' = True;
	isMirrored '\x2A24' = True;
	isMirrored '\x2A26' = True;
	isMirrored '\x2A29' = True;
	isMirrored '\x2A2B' = True;
	isMirrored '\x2A2C' = True;
	isMirrored '\x2A2D' = True;
	isMirrored '\x2A2E' = True;
	isMirrored '\x2A34' = True;
	isMirrored '\x2A35' = True;
	isMirrored '\x2A3C' = True;
	isMirrored '\x2A3D' = True;
	isMirrored '\x2A3E' = True;
	isMirrored '\x2A57' = True;
	isMirrored '\x2A58' = True;
	isMirrored '\x2A64' = True;
	isMirrored '\x2A65' = True;
	isMirrored '\x2A6A' = True;
	isMirrored '\x2A6B' = True;
	isMirrored '\x2A6C' = True;
	isMirrored '\x2A6D' = True;
	isMirrored '\x2A6F' = True;
	isMirrored '\x2A70' = True;
	isMirrored '\x2A73' = True;
	isMirrored '\x2A74' = True;
	isMirrored '\x2A79' = True;
	isMirrored '\x2A7A' = True;
	isMirrored '\x2A7B' = True;
	isMirrored '\x2A7C' = True;
	isMirrored '\x2A7D' = True;
	isMirrored '\x2A7E' = True;
	isMirrored '\x2A7F' = True;
	isMirrored '\x2A80' = True;
	isMirrored '\x2A81' = True;
	isMirrored '\x2A82' = True;
	isMirrored '\x2A83' = True;
	isMirrored '\x2A84' = True;
	isMirrored '\x2A85' = True;
	isMirrored '\x2A86' = True;
	isMirrored '\x2A87' = True;
	isMirrored '\x2A88' = True;
	isMirrored '\x2A89' = True;
	isMirrored '\x2A8A' = True;
	isMirrored '\x2A8B' = True;
	isMirrored '\x2A8C' = True;
	isMirrored '\x2A8D' = True;
	isMirrored '\x2A8E' = True;
	isMirrored '\x2A8F' = True;
	isMirrored '\x2A90' = True;
	isMirrored '\x2A91' = True;
	isMirrored '\x2A92' = True;
	isMirrored '\x2A93' = True;
	isMirrored '\x2A94' = True;
	isMirrored '\x2A95' = True;
	isMirrored '\x2A96' = True;
	isMirrored '\x2A97' = True;
	isMirrored '\x2A98' = True;
	isMirrored '\x2A99' = True;
	isMirrored '\x2A9A' = True;
	isMirrored '\x2A9B' = True;
	isMirrored '\x2A9C' = True;
	isMirrored '\x2A9D' = True;
	isMirrored '\x2A9E' = True;
	isMirrored '\x2A9F' = True;
	isMirrored '\x2AA0' = True;
	isMirrored '\x2AA1' = True;
	isMirrored '\x2AA2' = True;
	isMirrored '\x2AA3' = True;
	isMirrored '\x2AA6' = True;
	isMirrored '\x2AA7' = True;
	isMirrored '\x2AA8' = True;
	isMirrored '\x2AA9' = True;
	isMirrored '\x2AAA' = True;
	isMirrored '\x2AAB' = True;
	isMirrored '\x2AAC' = True;
	isMirrored '\x2AAD' = True;
	isMirrored '\x2AAF' = True;
	isMirrored '\x2AB0' = True;
	isMirrored '\x2AB1' = True;
	isMirrored '\x2AB2' = True;
	isMirrored '\x2AB3' = True;
	isMirrored '\x2AB4' = True;
	isMirrored '\x2AB5' = True;
	isMirrored '\x2AB6' = True;
	isMirrored '\x2AB7' = True;
	isMirrored '\x2AB8' = True;
	isMirrored '\x2AB9' = True;
	isMirrored '\x2ABA' = True;
	isMirrored '\x2ABB' = True;
	isMirrored '\x2ABC' = True;
	isMirrored '\x2ABD' = True;
	isMirrored '\x2ABE' = True;
	isMirrored '\x2ABF' = True;
	isMirrored '\x2AC0' = True;
	isMirrored '\x2AC1' = True;
	isMirrored '\x2AC2' = True;
	isMirrored '\x2AC3' = True;
	isMirrored '\x2AC4' = True;
	isMirrored '\x2AC5' = True;
	isMirrored '\x2AC6' = True;
	isMirrored '\x2AC7' = True;
	isMirrored '\x2AC8' = True;
	isMirrored '\x2AC9' = True;
	isMirrored '\x2ACA' = True;
	isMirrored '\x2ACB' = True;
	isMirrored '\x2ACC' = True;
	isMirrored '\x2ACD' = True;
	isMirrored '\x2ACE' = True;
	isMirrored '\x2ACF' = True;
	isMirrored '\x2AD0' = True;
	isMirrored '\x2AD1' = True;
	isMirrored '\x2AD2' = True;
	isMirrored '\x2AD3' = True;
	isMirrored '\x2AD4' = True;
	isMirrored '\x2AD5' = True;
	isMirrored '\x2AD6' = True;
	isMirrored '\x2ADC' = True;
	isMirrored '\x2ADE' = True;
	isMirrored '\x2AE2' = True;
	isMirrored '\x2AE3' = True;
	isMirrored '\x2AE4' = True;
	isMirrored '\x2AE5' = True;
	isMirrored '\x2AE6' = True;
	isMirrored '\x2AEC' = True;
	isMirrored '\x2AED' = True;
	isMirrored '\x2AEE' = True;
	isMirrored '\x2AF3' = True;
	isMirrored '\x2AF7' = True;
	isMirrored '\x2AF8' = True;
	isMirrored '\x2AF9' = True;
	isMirrored '\x2AFA' = True;
	isMirrored '\x2AFB' = True;
	isMirrored '\x2AFD' = True;
	isMirrored '\x3008' = True;
	isMirrored '\x3009' = True;
	isMirrored '\x300A' = True;
	isMirrored '\x300B' = True;
	isMirrored '\x300C' = True;
	isMirrored '\x300D' = True;
	isMirrored '\x300E' = True;
	isMirrored '\x300F' = True;
	isMirrored '\x3010' = True;
	isMirrored '\x3011' = True;
	isMirrored '\x3014' = True;
	isMirrored '\x3015' = True;
	isMirrored '\x3016' = True;
	isMirrored '\x3017' = True;
	isMirrored '\x3018' = True;
	isMirrored '\x3019' = True;
	isMirrored '\x301A' = True;
	isMirrored '\x301B' = True;
	isMirrored '\xFF08' = True;
	isMirrored '\xFF09' = True;
	isMirrored '\xFF1C' = True;
	isMirrored '\xFF1E' = True;
	isMirrored '\xFF3B' = True;
	isMirrored '\xFF3D' = True;
	isMirrored '\xFF5B' = True;
	isMirrored '\xFF5D' = True;
	isMirrored '\xFF5F' = True;
	isMirrored '\xFF60' = True;
	isMirrored '\xFF62' = True;
	isMirrored '\xFF63' = True;
	isMirrored c = handleOmittedRange False isMirrored c;


	-- Properties

	-- | Space characters and those format control characters (such as TAB, CR and LF) which should be treated by programming languages as \"white space\" for the purpose of parsing elements.  Note: ZERO WIDTH SPACE and ZERO WIDTH NO-BREAK SPACE are not included, since their functions are restricted to line-break control. Their names are unfortunately misleading in this respect.  Note: There are other senses of \"whitespace\" that encompass a different set of characters.
	;
	isWhiteSpace :: Char -> Bool;
	isWhiteSpace i | (i >= '\x0009') && (i <= '\x000D') = True; 
	isWhiteSpace '\x0020' = True; 
	isWhiteSpace '\x0085' = True; 
	isWhiteSpace '\x00A0' = True; 
	isWhiteSpace '\x1680' = True; 
	isWhiteSpace i | (i >= '\x2000') && (i <= '\x200A') = True; 
	isWhiteSpace '\x2028' = True; 
	isWhiteSpace '\x2029' = True; 
	isWhiteSpace '\x202F' = True; 
	isWhiteSpace '\x3000' = True; 
	isWhiteSpace _ = False;

	-- | Those format control characters which have specific functions in the Bidirectional Algorithm.
	;
	isBidiControl :: Char -> Bool;
	isBidiControl i | (i >= '\x200E') && (i <= '\x200F') = True; 
	isBidiControl i | (i >= '\x202A') && (i <= '\x202E') = True; 
	isBidiControl _ = False;

	-- | Those format control characters which have specific functions for control of cursive joining and ligation.
	;
	isJoinControl :: Char -> Bool;
	isJoinControl i | (i >= '\x200C') && (i <= '\x200D') = True; 
	isJoinControl _ = False;

	-- | Those punctuation characters explicitly called out as dashes in the Unicode Standard, plus compatibility equivalents to those. Most of these have the Pd General Category, but some have the Sm General Category because of their use in mathematics.
	;
	isDash :: Char -> Bool;
	isDash '\x002D' = True; 
	isDash '\x00AD' = True; 
	isDash '\x058A' = True; 
	isDash '\x1806' = True; 
	isDash i | (i >= '\x2010') && (i <= '\x2015') = True; 
	isDash '\x207B' = True; 
	isDash '\x208B' = True; 
	isDash '\x2212' = True; 
	isDash '\x301C' = True; 
	isDash '\x3030' = True; 
	isDash i | (i >= '\xFE31') && (i <= '\xFE32') = True; 
	isDash '\xFE58' = True; 
	isDash '\xFE63' = True; 
	isDash '\xFF0D' = True; 
	isDash _ = False;

	-- | Those dashes used to mark connections between pieces of words, plus the Katakana middle dot. The Katakana middle dot functions like a hyphen, but is shaped like a dot rather than a dash.
	;
	isHyphen :: Char -> Bool;
	isHyphen '\x002D' = True; 
	isHyphen '\x00AD' = True; 
	isHyphen '\x058A' = True; 
	isHyphen '\x1806' = True; 
	isHyphen i | (i >= '\x2010') && (i <= '\x2011') = True; 
	isHyphen '\x30FB' = True; 
	isHyphen '\xFE63' = True; 
	isHyphen '\xFF0D' = True; 
	isHyphen '\xFF65' = True; 
	isHyphen _ = False;

	-- | Those punctuation characters that function as quotation marks.
	;
	isQuotationMark :: Char -> Bool;
	isQuotationMark '\x0022' = True; 
	isQuotationMark '\x0027' = True; 
	isQuotationMark '\x00AB' = True; 
	isQuotationMark '\x00BB' = True; 
	isQuotationMark '\x2018' = True; 
	isQuotationMark '\x2019' = True; 
	isQuotationMark '\x201A' = True; 
	isQuotationMark i | (i >= '\x201B') && (i <= '\x201C') = True; 
	isQuotationMark '\x201D' = True; 
	isQuotationMark '\x201E' = True; 
	isQuotationMark '\x201F' = True; 
	isQuotationMark '\x2039' = True; 
	isQuotationMark '\x203A' = True; 
	isQuotationMark '\x300C' = True; 
	isQuotationMark '\x300D' = True; 
	isQuotationMark '\x300E' = True; 
	isQuotationMark '\x300F' = True; 
	isQuotationMark '\x301D' = True; 
	isQuotationMark i | (i >= '\x301E') && (i <= '\x301F') = True; 
	isQuotationMark '\xFE41' = True; 
	isQuotationMark '\xFE42' = True; 
	isQuotationMark '\xFE43' = True; 
	isQuotationMark '\xFE44' = True; 
	isQuotationMark '\xFF02' = True; 
	isQuotationMark '\xFF07' = True; 
	isQuotationMark '\xFF62' = True; 
	isQuotationMark '\xFF63' = True; 
	isQuotationMark _ = False;

	-- | Those punctuation characters that generally mark the end of textual units.
	;
	isTerminalPunctuation :: Char -> Bool;
	isTerminalPunctuation '\x0021' = True; 
	isTerminalPunctuation '\x002C' = True; 
	isTerminalPunctuation '\x002E' = True; 
	isTerminalPunctuation i | (i >= '\x003A') && (i <= '\x003B') = True; 
	isTerminalPunctuation '\x003F' = True; 
	isTerminalPunctuation '\x037E' = True; 
	isTerminalPunctuation '\x0387' = True; 
	isTerminalPunctuation '\x0589' = True; 
	isTerminalPunctuation '\x060C' = True; 
	isTerminalPunctuation '\x061B' = True; 
	isTerminalPunctuation '\x061F' = True; 
	isTerminalPunctuation '\x06D4' = True; 
	isTerminalPunctuation i | (i >= '\x0700') && (i <= '\x070A') = True; 
	isTerminalPunctuation '\x070C' = True; 
	isTerminalPunctuation i | (i >= '\x0964') && (i <= '\x0965') = True; 
	isTerminalPunctuation i | (i >= '\x0E5A') && (i <= '\x0E5B') = True; 
	isTerminalPunctuation i | (i >= '\x104A') && (i <= '\x104B') = True; 
	isTerminalPunctuation i | (i >= '\x1361') && (i <= '\x1368') = True; 
	isTerminalPunctuation i | (i >= '\x166D') && (i <= '\x166E') = True; 
	isTerminalPunctuation i | (i >= '\x16EB') && (i <= '\x16ED') = True; 
	isTerminalPunctuation i | (i >= '\x17D4') && (i <= '\x17D6') = True; 
	isTerminalPunctuation '\x17DA' = True; 
	isTerminalPunctuation i | (i >= '\x1802') && (i <= '\x1805') = True; 
	isTerminalPunctuation i | (i >= '\x1808') && (i <= '\x1809') = True; 
	isTerminalPunctuation i | (i >= '\x203C') && (i <= '\x203D') = True; 
	isTerminalPunctuation i | (i >= '\x2048') && (i <= '\x2049') = True; 
	isTerminalPunctuation i | (i >= '\x3001') && (i <= '\x3002') = True; 
	isTerminalPunctuation i | (i >= '\xFE50') && (i <= '\xFE52') = True; 
	isTerminalPunctuation i | (i >= '\xFE54') && (i <= '\xFE57') = True; 
	isTerminalPunctuation '\xFF01' = True; 
	isTerminalPunctuation '\xFF0C' = True; 
	isTerminalPunctuation '\xFF0E' = True; 
	isTerminalPunctuation i | (i >= '\xFF1A') && (i <= '\xFF1B') = True; 
	isTerminalPunctuation '\xFF1F' = True; 
	isTerminalPunctuation '\xFF61' = True; 
	isTerminalPunctuation '\xFF64' = True; 
	isTerminalPunctuation _ = False;

	-- | Used in deriving the Math property.
	;
	isOtherMath :: Char -> Bool;
	isOtherMath '\x0028' = True; 
	isOtherMath '\x0029' = True; 
	isOtherMath '\x002A' = True; 
	isOtherMath '\x002D' = True; 
	isOtherMath '\x002F' = True; 
	isOtherMath '\x005B' = True; 
	isOtherMath '\x005C' = True; 
	isOtherMath '\x005D' = True; 
	isOtherMath '\x005E' = True; 
	isOtherMath '\x007B' = True; 
	isOtherMath '\x007D' = True; 
	isOtherMath '\x2016' = True; 
	isOtherMath i | (i >= '\x2032') && (i <= '\x2034') = True; 
	isOtherMath '\x207D' = True; 
	isOtherMath '\x207E' = True; 
	isOtherMath '\x208D' = True; 
	isOtherMath '\x208E' = True; 
	isOtherMath i | (i >= '\x20D0') && (i <= '\x20DC') = True; 
	isOtherMath '\x20E1' = True; 
	isOtherMath '\x2102' = True; 
	isOtherMath i | (i >= '\x210A') && (i <= '\x2113') = True; 
	isOtherMath '\x2115' = True; 
	isOtherMath i | (i >= '\x2119') && (i <= '\x211D') = True; 
	isOtherMath '\x2124' = True; 
	isOtherMath '\x2128' = True; 
	isOtherMath i | (i >= '\x212C') && (i <= '\x212D') = True; 
	isOtherMath i | (i >= '\x212F') && (i <= '\x2131') = True; 
	isOtherMath i | (i >= '\x2133') && (i <= '\x2134') = True; 
	isOtherMath i | (i >= '\x2135') && (i <= '\x2138') = True; 
	isOtherMath '\xFE35' = True; 
	isOtherMath '\xFE36' = True; 
	isOtherMath '\xFE37' = True; 
	isOtherMath '\xFE38' = True; 
	isOtherMath '\xFE59' = True; 
	isOtherMath '\xFE5A' = True; 
	isOtherMath '\xFE5B' = True; 
	isOtherMath '\xFE5C' = True; 
	isOtherMath '\xFE61' = True; 
	isOtherMath '\xFE63' = True; 
	isOtherMath '\xFE68' = True; 
	isOtherMath '\xFF08' = True; 
	isOtherMath '\xFF09' = True; 
	isOtherMath '\xFF0A' = True; 
	isOtherMath '\xFF0D' = True; 
	isOtherMath '\xFF0F' = True; 
	isOtherMath '\xFF3B' = True; 
	isOtherMath '\xFF3C' = True; 
	isOtherMath '\xFF3D' = True; 
	isOtherMath '\xFF3E' = True; 
	isOtherMath '\xFF5B' = True; 
	isOtherMath '\xFF5D' = True; 
	isOtherMath i | (i >= '\x1D400') && (i <= '\x1D454') = True; 
	isOtherMath i | (i >= '\x1D456') && (i <= '\x1D49C') = True; 
	isOtherMath i | (i >= '\x1D49E') && (i <= '\x1D49F') = True; 
	isOtherMath '\x1D4A2' = True; 
	isOtherMath i | (i >= '\x1D4A5') && (i <= '\x1D4A6') = True; 
	isOtherMath i | (i >= '\x1D4A9') && (i <= '\x1D4AC') = True; 
	isOtherMath i | (i >= '\x1D4AE') && (i <= '\x1D4B9') = True; 
	isOtherMath '\x1D4BB' = True; 
	isOtherMath i | (i >= '\x1D4BD') && (i <= '\x1D4C0') = True; 
	isOtherMath i | (i >= '\x1D4C2') && (i <= '\x1D4C3') = True; 
	isOtherMath i | (i >= '\x1D4C5') && (i <= '\x1D505') = True; 
	isOtherMath i | (i >= '\x1D507') && (i <= '\x1D50A') = True; 
	isOtherMath i | (i >= '\x1D50D') && (i <= '\x1D514') = True; 
	isOtherMath i | (i >= '\x1D516') && (i <= '\x1D51C') = True; 
	isOtherMath i | (i >= '\x1D51E') && (i <= '\x1D539') = True; 
	isOtherMath i | (i >= '\x1D53B') && (i <= '\x1D53E') = True; 
	isOtherMath i | (i >= '\x1D540') && (i <= '\x1D544') = True; 
	isOtherMath '\x1D546' = True; 
	isOtherMath i | (i >= '\x1D54A') && (i <= '\x1D550') = True; 
	isOtherMath i | (i >= '\x1D552') && (i <= '\x1D6A3') = True; 
	isOtherMath i | (i >= '\x1D6A8') && (i <= '\x1D6C0') = True; 
	isOtherMath i | (i >= '\x1D6C2') && (i <= '\x1D6DA') = True; 
	isOtherMath i | (i >= '\x1D6DC') && (i <= '\x1D6FA') = True; 
	isOtherMath i | (i >= '\x1D6FC') && (i <= '\x1D714') = True; 
	isOtherMath i | (i >= '\x1D716') && (i <= '\x1D734') = True; 
	isOtherMath i | (i >= '\x1D736') && (i <= '\x1D74E') = True; 
	isOtherMath i | (i >= '\x1D750') && (i <= '\x1D76E') = True; 
	isOtherMath i | (i >= '\x1D770') && (i <= '\x1D788') = True; 
	isOtherMath i | (i >= '\x1D78A') && (i <= '\x1D7A8') = True; 
	isOtherMath i | (i >= '\x1D7AA') && (i <= '\x1D7C2') = True; 
	isOtherMath i | (i >= '\x1D7C4') && (i <= '\x1D7C9') = True; 
	isOtherMath i | (i >= '\x1D7CE') && (i <= '\x1D7FF') = True; 
	isOtherMath _ = False;

	-- | Characters commonly used for the representation of hexadecimal numbers, plus their compatibility equivalents.
	;
	isHexDigit :: Char -> Bool;
	isHexDigit i | (i >= '\x0030') && (i <= '\x0039') = True; 
	isHexDigit i | (i >= '\x0041') && (i <= '\x0046') = True; 
	isHexDigit i | (i >= '\x0061') && (i <= '\x0066') = True; 
	isHexDigit i | (i >= '\xFF10') && (i <= '\xFF19') = True; 
	isHexDigit i | (i >= '\xFF21') && (i <= '\xFF26') = True; 
	isHexDigit i | (i >= '\xFF41') && (i <= '\xFF46') = True; 
	isHexDigit _ = False;

	-- | ASCII characters commonly used for the representation of hexadecimal numbers.
	;
	isASCIIHexDigit :: Char -> Bool;
	isASCIIHexDigit i | (i >= '\x0030') && (i <= '\x0039') = True; 
	isASCIIHexDigit i | (i >= '\x0041') && (i <= '\x0046') = True; 
	isASCIIHexDigit i | (i >= '\x0061') && (i <= '\x0066') = True; 
	isASCIIHexDigit _ = False;

	-- | Used in deriving the Alphabetic property.
	;
	isOtherAlphabetic :: Char -> Bool;
	isOtherAlphabetic '\x0345' = True; 
	isOtherAlphabetic i | (i >= '\x05B0') && (i <= '\x05B9') = True; 
	isOtherAlphabetic i | (i >= '\x05BB') && (i <= '\x05BD') = True; 
	isOtherAlphabetic '\x05BF' = True; 
	isOtherAlphabetic i | (i >= '\x05C1') && (i <= '\x05C2') = True; 
	isOtherAlphabetic '\x05C4' = True; 
	isOtherAlphabetic i | (i >= '\x064B') && (i <= '\x0655') = True; 
	isOtherAlphabetic '\x0670' = True; 
	isOtherAlphabetic i | (i >= '\x06D6') && (i <= '\x06DC') = True; 
	isOtherAlphabetic i | (i >= '\x06E1') && (i <= '\x06E4') = True; 
	isOtherAlphabetic i | (i >= '\x06E7') && (i <= '\x06E8') = True; 
	isOtherAlphabetic '\x06ED' = True; 
	isOtherAlphabetic '\x0711' = True; 
	isOtherAlphabetic i | (i >= '\x0730') && (i <= '\x073F') = True; 
	isOtherAlphabetic i | (i >= '\x07A6') && (i <= '\x07B0') = True; 
	isOtherAlphabetic i | (i >= '\x0901') && (i <= '\x0902') = True; 
	isOtherAlphabetic '\x0903' = True; 
	isOtherAlphabetic i | (i >= '\x093E') && (i <= '\x0940') = True; 
	isOtherAlphabetic i | (i >= '\x0941') && (i <= '\x0948') = True; 
	isOtherAlphabetic i | (i >= '\x0949') && (i <= '\x094C') = True; 
	isOtherAlphabetic i | (i >= '\x0962') && (i <= '\x0963') = True; 
	isOtherAlphabetic '\x0981' = True; 
	isOtherAlphabetic i | (i >= '\x0982') && (i <= '\x0983') = True; 
	isOtherAlphabetic i | (i >= '\x09BE') && (i <= '\x09C0') = True; 
	isOtherAlphabetic i | (i >= '\x09C1') && (i <= '\x09C4') = True; 
	isOtherAlphabetic i | (i >= '\x09C7') && (i <= '\x09C8') = True; 
	isOtherAlphabetic i | (i >= '\x09CB') && (i <= '\x09CC') = True; 
	isOtherAlphabetic '\x09D7' = True; 
	isOtherAlphabetic i | (i >= '\x09E2') && (i <= '\x09E3') = True; 
	isOtherAlphabetic '\x0A02' = True; 
	isOtherAlphabetic i | (i >= '\x0A3E') && (i <= '\x0A40') = True; 
	isOtherAlphabetic i | (i >= '\x0A41') && (i <= '\x0A42') = True; 
	isOtherAlphabetic i | (i >= '\x0A47') && (i <= '\x0A48') = True; 
	isOtherAlphabetic i | (i >= '\x0A4B') && (i <= '\x0A4C') = True; 
	isOtherAlphabetic i | (i >= '\x0A70') && (i <= '\x0A71') = True; 
	isOtherAlphabetic i | (i >= '\x0A81') && (i <= '\x0A82') = True; 
	isOtherAlphabetic '\x0A83' = True; 
	isOtherAlphabetic i | (i >= '\x0ABE') && (i <= '\x0AC0') = True; 
	isOtherAlphabetic i | (i >= '\x0AC1') && (i <= '\x0AC5') = True; 
	isOtherAlphabetic i | (i >= '\x0AC7') && (i <= '\x0AC8') = True; 
	isOtherAlphabetic '\x0AC9' = True; 
	isOtherAlphabetic i | (i >= '\x0ACB') && (i <= '\x0ACC') = True; 
	isOtherAlphabetic '\x0B01' = True; 
	isOtherAlphabetic i | (i >= '\x0B02') && (i <= '\x0B03') = True; 
	isOtherAlphabetic '\x0B3E' = True; 
	isOtherAlphabetic '\x0B3F' = True; 
	isOtherAlphabetic '\x0B40' = True; 
	isOtherAlphabetic i | (i >= '\x0B41') && (i <= '\x0B43') = True; 
	isOtherAlphabetic i | (i >= '\x0B47') && (i <= '\x0B48') = True; 
	isOtherAlphabetic i | (i >= '\x0B4B') && (i <= '\x0B4C') = True; 
	isOtherAlphabetic '\x0B56' = True; 
	isOtherAlphabetic '\x0B57' = True; 
	isOtherAlphabetic '\x0B82' = True; 
	isOtherAlphabetic i | (i >= '\x0BBE') && (i <= '\x0BBF') = True; 
	isOtherAlphabetic '\x0BC0' = True; 
	isOtherAlphabetic i | (i >= '\x0BC1') && (i <= '\x0BC2') = True; 
	isOtherAlphabetic i | (i >= '\x0BC6') && (i <= '\x0BC8') = True; 
	isOtherAlphabetic i | (i >= '\x0BCA') && (i <= '\x0BCC') = True; 
	isOtherAlphabetic '\x0BD7' = True; 
	isOtherAlphabetic i | (i >= '\x0C01') && (i <= '\x0C03') = True; 
	isOtherAlphabetic i | (i >= '\x0C3E') && (i <= '\x0C40') = True; 
	isOtherAlphabetic i | (i >= '\x0C41') && (i <= '\x0C44') = True; 
	isOtherAlphabetic i | (i >= '\x0C46') && (i <= '\x0C48') = True; 
	isOtherAlphabetic i | (i >= '\x0C4A') && (i <= '\x0C4C') = True; 
	isOtherAlphabetic i | (i >= '\x0C55') && (i <= '\x0C56') = True; 
	isOtherAlphabetic i | (i >= '\x0C82') && (i <= '\x0C83') = True; 
	isOtherAlphabetic '\x0CBE' = True; 
	isOtherAlphabetic '\x0CBF' = True; 
	isOtherAlphabetic i | (i >= '\x0CC0') && (i <= '\x0CC4') = True; 
	isOtherAlphabetic '\x0CC6' = True; 
	isOtherAlphabetic i | (i >= '\x0CC7') && (i <= '\x0CC8') = True; 
	isOtherAlphabetic i | (i >= '\x0CCA') && (i <= '\x0CCB') = True; 
	isOtherAlphabetic '\x0CCC' = True; 
	isOtherAlphabetic i | (i >= '\x0CD5') && (i <= '\x0CD6') = True; 
	isOtherAlphabetic i | (i >= '\x0D02') && (i <= '\x0D03') = True; 
	isOtherAlphabetic i | (i >= '\x0D3E') && (i <= '\x0D40') = True; 
	isOtherAlphabetic i | (i >= '\x0D41') && (i <= '\x0D43') = True; 
	isOtherAlphabetic i | (i >= '\x0D46') && (i <= '\x0D48') = True; 
	isOtherAlphabetic i | (i >= '\x0D4A') && (i <= '\x0D4C') = True; 
	isOtherAlphabetic '\x0D57' = True; 
	isOtherAlphabetic i | (i >= '\x0D82') && (i <= '\x0D83') = True; 
	isOtherAlphabetic i | (i >= '\x0DCF') && (i <= '\x0DD1') = True; 
	isOtherAlphabetic i | (i >= '\x0DD2') && (i <= '\x0DD4') = True; 
	isOtherAlphabetic '\x0DD6' = True; 
	isOtherAlphabetic i | (i >= '\x0DD8') && (i <= '\x0DDF') = True; 
	isOtherAlphabetic i | (i >= '\x0DF2') && (i <= '\x0DF3') = True; 
	isOtherAlphabetic '\x0E31' = True; 
	isOtherAlphabetic i | (i >= '\x0E34') && (i <= '\x0E3A') = True; 
	isOtherAlphabetic '\x0E4D' = True; 
	isOtherAlphabetic '\x0EB1' = True; 
	isOtherAlphabetic i | (i >= '\x0EB4') && (i <= '\x0EB9') = True; 
	isOtherAlphabetic i | (i >= '\x0EBB') && (i <= '\x0EBC') = True; 
	isOtherAlphabetic '\x0ECD' = True; 
	isOtherAlphabetic i | (i >= '\x0F71') && (i <= '\x0F7E') = True; 
	isOtherAlphabetic '\x0F7F' = True; 
	isOtherAlphabetic i | (i >= '\x0F80') && (i <= '\x0F81') = True; 
	isOtherAlphabetic i | (i >= '\x0F90') && (i <= '\x0F97') = True; 
	isOtherAlphabetic i | (i >= '\x0F99') && (i <= '\x0FBC') = True; 
	isOtherAlphabetic '\x102C' = True; 
	isOtherAlphabetic i | (i >= '\x102D') && (i <= '\x1030') = True; 
	isOtherAlphabetic '\x1031' = True; 
	isOtherAlphabetic '\x1032' = True; 
	isOtherAlphabetic '\x1036' = True; 
	isOtherAlphabetic '\x1038' = True; 
	isOtherAlphabetic i | (i >= '\x1056') && (i <= '\x1057') = True; 
	isOtherAlphabetic i | (i >= '\x1058') && (i <= '\x1059') = True; 
	isOtherAlphabetic i | (i >= '\x16EE') && (i <= '\x16F0') = True; 
	isOtherAlphabetic i | (i >= '\x1712') && (i <= '\x1713') = True; 
	isOtherAlphabetic i | (i >= '\x1732') && (i <= '\x1733') = True; 
	isOtherAlphabetic i | (i >= '\x1752') && (i <= '\x1753') = True; 
	isOtherAlphabetic i | (i >= '\x1772') && (i <= '\x1773') = True; 
	isOtherAlphabetic i | (i >= '\x17B4') && (i <= '\x17B6') = True; 
	isOtherAlphabetic i | (i >= '\x17B7') && (i <= '\x17BD') = True; 
	isOtherAlphabetic i | (i >= '\x17BE') && (i <= '\x17C5') = True; 
	isOtherAlphabetic '\x17C6' = True; 
	isOtherAlphabetic i | (i >= '\x17C7') && (i <= '\x17C8') = True; 
	isOtherAlphabetic '\x18A9' = True; 
	isOtherAlphabetic i | (i >= '\x2160') && (i <= '\x2183') = True; 
	isOtherAlphabetic '\xFB1E' = True; 
	isOtherAlphabetic '\x1034A' = True; 
	isOtherAlphabetic _ = False;

	-- | Characters considered to be CJKV (Chinese, Japanese, Korean, and Vietnamese) ideographs.
	;
	isIdeographic :: Char -> Bool;
	isIdeographic '\x3006' = True; 
	isIdeographic '\x3007' = True; 
	isIdeographic i | (i >= '\x3021') && (i <= '\x3029') = True; 
	isIdeographic i | (i >= '\x3038') && (i <= '\x303A') = True; 
	isIdeographic i | (i >= '\x3400') && (i <= '\x4DB5') = True; 
	isIdeographic i | (i >= '\x4E00') && (i <= '\x9FA5') = True; 
	isIdeographic i | (i >= '\xF900') && (i <= '\xFA2D') = True; 
	isIdeographic i | (i >= '\x20000') && (i <= '\x2A6D6') = True; 
	isIdeographic i | (i >= '\x2F800') && (i <= '\x2FA1D') = True; 
	isIdeographic _ = False;

	-- | Characters that linguistically modify the meaning of another character to which they apply. Some diacritics are not combining characters, and some combining characters are not diacritics.
	;
	isDiacritic :: Char -> Bool;
	isDiacritic '\x005E' = True; 
	isDiacritic '\x0060' = True; 
	isDiacritic '\x00A8' = True; 
	isDiacritic '\x00AF' = True; 
	isDiacritic '\x00B4' = True; 
	isDiacritic '\x00B7' = True; 
	isDiacritic '\x00B8' = True; 
	isDiacritic i | (i >= '\x02B0') && (i <= '\x02B8') = True; 
	isDiacritic i | (i >= '\x02B9') && (i <= '\x02BA') = True; 
	isDiacritic i | (i >= '\x02BB') && (i <= '\x02C1') = True; 
	isDiacritic i | (i >= '\x02C2') && (i <= '\x02CF') = True; 
	isDiacritic i | (i >= '\x02D0') && (i <= '\x02D1') = True; 
	isDiacritic i | (i >= '\x02D2') && (i <= '\x02DF') = True; 
	isDiacritic i | (i >= '\x02E0') && (i <= '\x02E4') = True; 
	isDiacritic i | (i >= '\x02E5') && (i <= '\x02ED') = True; 
	isDiacritic '\x02EE' = True; 
	isDiacritic i | (i >= '\x0300') && (i <= '\x034E') = True; 
	isDiacritic i | (i >= '\x0360') && (i <= '\x0362') = True; 
	isDiacritic i | (i >= '\x0374') && (i <= '\x0375') = True; 
	isDiacritic '\x037A' = True; 
	isDiacritic i | (i >= '\x0384') && (i <= '\x0385') = True; 
	isDiacritic i | (i >= '\x0483') && (i <= '\x0486') = True; 
	isDiacritic '\x0559' = True; 
	isDiacritic i | (i >= '\x0591') && (i <= '\x05A1') = True; 
	isDiacritic i | (i >= '\x05A3') && (i <= '\x05B9') = True; 
	isDiacritic i | (i >= '\x05BB') && (i <= '\x05BD') = True; 
	isDiacritic '\x05BF' = True; 
	isDiacritic i | (i >= '\x05C1') && (i <= '\x05C2') = True; 
	isDiacritic '\x05C4' = True; 
	isDiacritic i | (i >= '\x064B') && (i <= '\x0652') = True; 
	isDiacritic i | (i >= '\x06DF') && (i <= '\x06E0') = True; 
	isDiacritic i | (i >= '\x06E5') && (i <= '\x06E6') = True; 
	isDiacritic i | (i >= '\x06EA') && (i <= '\x06EC') = True; 
	isDiacritic i | (i >= '\x0730') && (i <= '\x074A') = True; 
	isDiacritic i | (i >= '\x07A6') && (i <= '\x07B0') = True; 
	isDiacritic '\x093C' = True; 
	isDiacritic '\x094D' = True; 
	isDiacritic i | (i >= '\x0951') && (i <= '\x0954') = True; 
	isDiacritic '\x09BC' = True; 
	isDiacritic '\x09CD' = True; 
	isDiacritic '\x0A3C' = True; 
	isDiacritic '\x0A4D' = True; 
	isDiacritic '\x0ABC' = True; 
	isDiacritic '\x0ACD' = True; 
	isDiacritic '\x0B3C' = True; 
	isDiacritic '\x0B4D' = True; 
	isDiacritic '\x0BCD' = True; 
	isDiacritic '\x0C4D' = True; 
	isDiacritic '\x0CCD' = True; 
	isDiacritic '\x0D4D' = True; 
	isDiacritic '\x0DCA' = True; 
	isDiacritic i | (i >= '\x0E47') && (i <= '\x0E4C') = True; 
	isDiacritic '\x0E4E' = True; 
	isDiacritic i | (i >= '\x0EC8') && (i <= '\x0ECC') = True; 
	isDiacritic i | (i >= '\x0F18') && (i <= '\x0F19') = True; 
	isDiacritic '\x0F35' = True; 
	isDiacritic '\x0F37' = True; 
	isDiacritic '\x0F39' = True; 
	isDiacritic i | (i >= '\x0F3E') && (i <= '\x0F3F') = True; 
	isDiacritic i | (i >= '\x0F82') && (i <= '\x0F84') = True; 
	isDiacritic i | (i >= '\x0F86') && (i <= '\x0F87') = True; 
	isDiacritic '\x0FC6' = True; 
	isDiacritic '\x1037' = True; 
	isDiacritic '\x1039' = True; 
	isDiacritic i | (i >= '\x17C9') && (i <= '\x17D3') = True; 
	isDiacritic '\x1FBD' = True; 
	isDiacritic i | (i >= '\x1FBF') && (i <= '\x1FC1') = True; 
	isDiacritic i | (i >= '\x1FCD') && (i <= '\x1FCF') = True; 
	isDiacritic i | (i >= '\x1FDD') && (i <= '\x1FDF') = True; 
	isDiacritic i | (i >= '\x1FED') && (i <= '\x1FEF') = True; 
	isDiacritic i | (i >= '\x1FFD') && (i <= '\x1FFE') = True; 
	isDiacritic i | (i >= '\x302A') && (i <= '\x302F') = True; 
	isDiacritic i | (i >= '\x3099') && (i <= '\x309A') = True; 
	isDiacritic i | (i >= '\x309B') && (i <= '\x309C') = True; 
	isDiacritic '\x30FC' = True; 
	isDiacritic '\xFB1E' = True; 
	isDiacritic i | (i >= '\xFE20') && (i <= '\xFE23') = True; 
	isDiacritic '\xFF3E' = True; 
	isDiacritic '\xFF40' = True; 
	isDiacritic '\xFF70' = True; 
	isDiacritic i | (i >= '\xFF9E') && (i <= '\xFF9F') = True; 
	isDiacritic '\xFFE3' = True; 
	isDiacritic i | (i >= '\x1D167') && (i <= '\x1D169') = True; 
	isDiacritic i | (i >= '\x1D16D') && (i <= '\x1D172') = True; 
	isDiacritic i | (i >= '\x1D17B') && (i <= '\x1D182') = True; 
	isDiacritic i | (i >= '\x1D185') && (i <= '\x1D18B') = True; 
	isDiacritic i | (i >= '\x1D1AA') && (i <= '\x1D1AD') = True; 
	isDiacritic _ = False;

	-- | Characters whose principal function is to extend the value or shape of a preceding alphabetic character. Typical of these are length and iteration marks.
	;
	isExtender :: Char -> Bool;
	isExtender '\x00B7' = True; 
	isExtender i | (i >= '\x02D0') && (i <= '\x02D1') = True; 
	isExtender '\x0640' = True; 
	isExtender '\x0E46' = True; 
	isExtender '\x0EC6' = True; 
	isExtender '\x1843' = True; 
	isExtender '\x3005' = True; 
	isExtender i | (i >= '\x3031') && (i <= '\x3035') = True; 
	isExtender i | (i >= '\x309D') && (i <= '\x309E') = True; 
	isExtender i | (i >= '\x30FC') && (i <= '\x30FE') = True; 
	isExtender '\xFF70' = True; 
	isExtender _ = False;

	-- | Used in deriving the Lowercase property.
	;
	isOtherLowercase :: Char -> Bool;
	isOtherLowercase i | (i >= '\x02B0') && (i <= '\x02B8') = True; 
	isOtherLowercase i | (i >= '\x02C0') && (i <= '\x02C1') = True; 
	isOtherLowercase i | (i >= '\x02E0') && (i <= '\x02E4') = True; 
	isOtherLowercase '\x0345' = True; 
	isOtherLowercase '\x037A' = True; 
	isOtherLowercase i | (i >= '\x2170') && (i <= '\x217F') = True; 
	isOtherLowercase i | (i >= '\x24D0') && (i <= '\x24E9') = True; 
	isOtherLowercase _ = False;

	-- | Used in deriving the Uppercase property.
	;
	isOtherUppercase :: Char -> Bool;
	isOtherUppercase i | (i >= '\x2160') && (i <= '\x216F') = True; 
	isOtherUppercase i | (i >= '\x24B6') && (i <= '\x24CF') = True; 
	isOtherUppercase _ = False;

	-- | Code points that are explicitly defined as illegal for the encoding of characters. See Unicode 3.1 for more information.
	;
	isNoncharacterCodePoint :: Char -> Bool;
	isNoncharacterCodePoint i | (i >= '\xFDD0') && (i <= '\xFDEF') = True; 
	isNoncharacterCodePoint i | (i >= '\xFFFE') && (i <= '\xFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x1FFFE') && (i <= '\x1FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x2FFFE') && (i <= '\x2FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x3FFFE') && (i <= '\x3FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x4FFFE') && (i <= '\x4FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x5FFFE') && (i <= '\x5FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x6FFFE') && (i <= '\x6FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x7FFFE') && (i <= '\x7FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x8FFFE') && (i <= '\x8FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x9FFFE') && (i <= '\x9FFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xAFFFE') && (i <= '\xAFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xBFFFE') && (i <= '\xBFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xCFFFE') && (i <= '\xCFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xDFFFE') && (i <= '\xDFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xEFFFE') && (i <= '\xEFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\xFFFFE') && (i <= '\xFFFFF') = True; 
	isNoncharacterCodePoint i | (i >= '\x10FFFE') && (i <= '\x10FFFF') = True; 
	isNoncharacterCodePoint _ = False;

	-- | Used in deriving  the Grapheme_Extend property.
	;
	isOtherGraphemeExtend :: Char -> Bool;
	isOtherGraphemeExtend i | (i >= '\xFF9E') && (i <= '\xFF9F') = True; 
	isOtherGraphemeExtend _ = False;

	-- | Used in determining default grapheme cluster boundaries.  For more information, see UTR #29: Text Boundaries (in proposed draft status at publication of Unicode 3.2).
	;
	isGraphemeLink :: Char -> Bool;
	isGraphemeLink '\x094D' = True; 
	isGraphemeLink '\x09CD' = True; 
	isGraphemeLink '\x0A4D' = True; 
	isGraphemeLink '\x0ACD' = True; 
	isGraphemeLink '\x0B4D' = True; 
	isGraphemeLink '\x0BCD' = True; 
	isGraphemeLink '\x0C4D' = True; 
	isGraphemeLink '\x0CCD' = True; 
	isGraphemeLink '\x0D4D' = True; 
	isGraphemeLink '\x0DCA' = True; 
	isGraphemeLink '\x0E3A' = True; 
	isGraphemeLink '\x1039' = True; 
	isGraphemeLink '\x17D2' = True; 
	isGraphemeLink _ = False;

	-- | For a machine-readable list of Ideographic Description Sequences.  For more information, see Unicode 3.2.
	;
	isIDSBinaryOperator :: Char -> Bool;
	isIDSBinaryOperator i | (i >= '\x2FF0') && (i <= '\x2FF1') = True; 
	isIDSBinaryOperator i | (i >= '\x2FF4') && (i <= '\x2FFB') = True; 
	isIDSBinaryOperator _ = False;

	-- | For a machine-readable list of Ideographic Description Sequences.  For more information, see Unicode 3.2.
	;
	isIDSTrinaryOperator :: Char -> Bool;
	isIDSTrinaryOperator i | (i >= '\x2FF2') && (i <= '\x2FF3') = True; 
	isIDSTrinaryOperator _ = False;

	-- | For a machine-readable list of Ideographic Description Sequences.  For more information, see Unicode 3.2.
	;
	isRadical :: Char -> Bool;
	isRadical i | (i >= '\x2E80') && (i <= '\x2E99') = True; 
	isRadical i | (i >= '\x2E9B') && (i <= '\x2EF3') = True; 
	isRadical i | (i >= '\x2F00') && (i <= '\x2FD5') = True; 
	isRadical _ = False;

	-- | For a machine-readable list of Ideographic Description Sequences.  For more information, see Unicode 3.2.
	;
	isUnifiedIdeograph :: Char -> Bool;
	isUnifiedIdeograph i | (i >= '\x3400') && (i <= '\x4DB5') = True; 
	isUnifiedIdeograph i | (i >= '\x4E00') && (i <= '\x9FA5') = True; 
	isUnifiedIdeograph i | (i >= '\xFA0E') && (i <= '\xFA0F') = True; 
	isUnifiedIdeograph '\xFA11' = True; 
	isUnifiedIdeograph i | (i >= '\xFA13') && (i <= '\xFA14') = True; 
	isUnifiedIdeograph '\xFA1F' = True; 
	isUnifiedIdeograph '\xFA21' = True; 
	isUnifiedIdeograph i | (i >= '\xFA23') && (i <= '\xFA24') = True; 
	isUnifiedIdeograph i | (i >= '\xFA27') && (i <= '\xFA29') = True; 
	isUnifiedIdeograph i | (i >= '\x20000') && (i <= '\x2A6D6') = True; 
	isUnifiedIdeograph _ = False;

	-- | Used in deriving the Default_Ignorable_Code_Point property.
	;
	isOtherDefaultIgnorableCodePoint :: Char -> Bool;
	isOtherDefaultIgnorableCodePoint i | (i >= '\x180B') && (i <= '\x180D') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\x2060') && (i <= '\x2063') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\x2064') && (i <= '\x2069') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\x206A') && (i <= '\x206F') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xFE00') && (i <= '\xFE0F') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xFFF0') && (i <= '\xFFF8') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xFFF9') && (i <= '\xFFFB') = True; 
	isOtherDefaultIgnorableCodePoint '\xE0000' = True; 
	isOtherDefaultIgnorableCodePoint '\xE0001' = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xE0002') && (i <= '\xE001F') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xE0020') && (i <= '\xE007F') = True; 
	isOtherDefaultIgnorableCodePoint i | (i >= '\xE0080') && (i <= '\xE0FFF') = True; 
	isOtherDefaultIgnorableCodePoint _ = False;

	-- | For a machine-readable list of deprecated characters. No characters will ever be removed from the standard, but the usage of deprecated characters is strongly discouraged.  For more information, see Unicode 3.2.
	;
	isDeprecated :: Char -> Bool;
	isDeprecated i | (i >= '\x0340') && (i <= '\x0341') = True; 
	isDeprecated i | (i >= '\x206A') && (i <= '\x206F') = True; 
	isDeprecated _ = False;

	-- | Characters with a \"soft dot\", like i or j. An accent placed on these characters causes the dot to disappear. An explicit dot above can be added where required, such as in Lithuanian.  For more information, see Unicode 3.0, Chapter 7, Diacritics on i and j
	;
	isSoftDotted :: Char -> Bool;
	isSoftDotted i | (i >= '\x0069') && (i <= '\x006A') = True; 
	isSoftDotted '\x012F' = True; 
	isSoftDotted '\x0268' = True; 
	isSoftDotted '\x0456' = True; 
	isSoftDotted '\x0458' = True; 
	isSoftDotted '\x1E2D' = True; 
	isSoftDotted '\x1ECB' = True; 
	isSoftDotted _ = False;

	-- | There are a small number of characters that do not use logical order. These characters require special handling in most processing.  For more information, see Unicode 3.2.
	;
	isLogicalOrderException :: Char -> Bool;
	isLogicalOrderException i | (i >= '\x0E40') && (i <= '\x0E44') = True; 
	isLogicalOrderException i | (i >= '\x0EC0') && (i <= '\x0EC4') = True; 
	isLogicalOrderException _ = False;
}