StdChar.digitToInt !c_0 = sub (toInt_char c_0) 48 <{StdChar.<_19}> :== lt StdChar.toUpper !c_0 = if (StdChar.isLower c_0) (toChar (add (toInt_char c_0) (sub (toInt_char 'A') (toInt_char 'a')))) c_0 StdChar.toLower !c_0 = if (StdChar.isUpper c_0) (toChar (sub (toInt_char c_0) (sub (toInt_char 'A') (toInt_char 'a')))) c_0 StdChar.isUpper !c_0 = if (ge c_0 'A') (if (ge 'Z' c_0) true false) false StdChar.isLower !c_0 = if (ge c_0 'a') (if (ge 'z' c_0) true false) false StdChar.isAlpha !c_0 = or (StdChar.isLower c_0) (StdChar.isUpper c_0) StdChar.isAlphanum !c_0 = or (StdChar.isAlpha c_0) (StdChar.isDigit c_0) StdChar.isDigit !c_0 = if (ge c_0 '0') (if (ge '9' c_0) true false) false StdChar.isOctDigit !c_0 = if (ge c_0 '0') (if (ge '9' c_0) true false) false StdChar.isHexDigit !c_0 = or (StdChar.isDigit c_0) (if (ge c_0 'A') (if (ge 'F' c_0) true false) false) <{StdChar.==_18}> :== eq StdChar.isSpace !c_0 = if (eq c_0 ' ') true (if (eq c_0 '\t') true (if (eq c_0 '\n') true (if (eq c_0 '\r') true (if (eq c_0 '\f') true (eq c_0 '\r'))))) StdChar.isControl !c_0 = if (lt c_0 ' ') true (eq c_0 '\177') StdChar.isPrint !c_0 = if (ge c_0 ' ')) (not (lt '~' c_0)) false StdChar.isAscii !c_0 = gt 128 c_0 <{StdChar.+_14}> !a !b = toChar (add (toInt_char a) (toInt_char b)) <{StdChar.-_15}> !a !b = toChar (sub (toInt_char a) (toInt_char b)) StdChar.zero_16 :== '\000' StdChar.one_17 :== '\001' StdChar.toChar_20 a = a StdChar.toChar_21 :== toChar StdChar.fromChar_22 :== toInt_char StdChar.fromChar_23 a_0 = a_0