module Data.Char (chr ,ord ,isAscii ,isLatin1 ,toUpper ,toLower ,isAsciiLower ,isAsciiUpper ,isDigit ,isOctDigit ,isHexDigit ,isSpace ) where import Fay.FFI chr :: Int -> Char chr = ffi "String.fromCharCode(%1)" ord :: Char -> Int ord = ffi "%1.charCodeAt(0)" isAscii :: Char -> Bool isAscii c = c < '\x80' isLatin1 :: Char -> Bool isLatin1 c = c <= '\xff' toUpper :: Char -> Char toUpper = ffi "%1.toUpperCase()" toLower :: Char -> Char toLower = ffi "%1.toLowerCase()" isAsciiLower :: Char -> Bool isAsciiLower c = c >= 'a' && c <= 'z' isAsciiUpper :: Char -> Bool isAsciiUpper c = c >= 'A' && c <= 'Z' isDigit :: Char -> Bool isDigit c = c >= '0' && c <= '9' isOctDigit :: Char -> Bool isOctDigit c = c >= '0' && c <= '7' isHexDigit :: Char -> Bool isHexDigit c = isDigit c || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f' isSpace :: Char -> Bool isSpace = ffi "%1.replace(/\\s/g,'') != %1"