packages feed

text-2.1: scripts/CaseFoldExceptions.hs

-- Generates exceptions for tests/Tests/Properties/Text.hs
-- runghc CaseFoldExceptions.txt

import qualified Data.Char
import Data.List
import qualified Data.Text as T

toCaseFoldExceptions :: String
toCaseFoldExceptions = filter (\c -> c `notElem` (cherokeeUpper ++ cherokeeLower)) $
   filter (\c -> T.toCaseFold (T.singleton c) /= T.singleton (Data.Char.toLower c))
     [minBound .. maxBound]

cherokeeUpper = ['\x13A0'..'\x13F7'] -- x13F8..13FF are lowercase
cherokeeLower = ['\xAB70'..'\xABBF']

main :: IO ()
main = print toCaseFoldExceptions