The isUpper function should return true for the '\9438' character
λ> toLower '\9438'
'\9438'
λ> toUpper '\9438'
'\9412'
λ> isUpper '\9438'
False
λ> isLower '\9438'
False
Here we can observe a contradiction. The toLower function does not alter its argument, but toUpper does, which tells us that the character 1) has the notion of case 2) it must be lower-cased. On the other hand, both isUpper and isLower functions return False for \9438 suggesting that it has no notion of case.
Apparently, \9438 is lower-cased and \9412 is its upper-cased version indeed:
λ> putStrLn "\9438"
ⓞ
λ> putStrLn "\9412"
Ⓞ
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |