diff --git a/Changelog.md b/Changelog.md index bdbf883c..6bbff60e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -18,18 +18,24 @@ These modules are compatible with `base:Data.Char`. - Re-export some functions from `Data.Char` in order to make `Unicode.Char` - a drop-in replacement. + a drop-in replacement in a _future_ version of this package. - Drop support for GHC 7.10.3 ### Deprecations -- In `Unicode.Char.General`. +- In `Unicode.Char.Case`: - - `isLetter` - - `isSpace` + - `isUpper`: use `isUpperCase` instead. + - `isLower`: use `isLowerCase` instead. - Preserve the behavior of these functions in `isAlphabetic` and `isWhiteSpace` - respectively. +- In `Unicode.Char.General`: + + - `isLetter`: use `isAlphabetic` instead. + - `isSpace`: use `isWhiteSpace` instead. + +- In `Unicode.Char`: same as hereinabove. These functions will be replaced in a + _future_ release with the functions with the same names from + `Unicode.Char.Case.Compat` and `Unicode.Char.General.Compat`. ## 0.2.0 (November 2021) diff --git a/lib/Unicode/Char.hs b/lib/Unicode/Char.hs index 27636cba..38bcf692 100644 --- a/lib/Unicode/Char.hs +++ b/lib/Unicode/Char.hs @@ -43,10 +43,10 @@ where import Data.Char (chr, ord) import Data.Version (Version, makeVersion) -import Unicode.Char.Case hiding (isLower, isUpper) -import Unicode.Char.Case.Compat -import Unicode.Char.General hiding (isLetter, isSpace) -import Unicode.Char.General.Compat +import Unicode.Char.Case +import Unicode.Char.Case.Compat hiding (isLower, isUpper) +import Unicode.Char.General +import Unicode.Char.General.Compat hiding (isLetter, isSpace) import Unicode.Char.Identifiers import Unicode.Char.Numeric import Unicode.Char.Normalization diff --git a/lib/Unicode/Char/General.hs b/lib/Unicode/Char/General.hs index 5d4c61fe..71d7a70b 100644 --- a/lib/Unicode/Char/General.hs +++ b/lib/Unicode/Char/General.hs @@ -431,7 +431,9 @@ isSymbol c = case generalCategory c of OtherSymbol -> True _ -> False --- | Returns 'True' for alphabetic Unicode characters. +-- | Returns 'True' for alphabetic Unicode characters (lower-case, upper-case +-- and title-case letters, plus letters of caseless scripts and modifiers +-- letters). -- -- @since 0.1.0 {-# INLINE isLetter #-} diff --git a/test/Unicode/CharSpec.hs b/test/Unicode/CharSpec.hs index 5875cf74..2dfc305b 100644 --- a/test/Unicode/CharSpec.hs +++ b/test/Unicode/CharSpec.hs @@ -7,6 +7,12 @@ module Unicode.CharSpec import qualified Data.Char as Char import qualified Unicode.Char as UChar +-- [TODO] Remove the following qualified imports once isLetter and isSpace +-- are removed from Unicode.Char.General +import qualified Unicode.Char.General.Compat as UCharCompat +-- [TODO] Remove the following qualified imports once isUpper and isLower +-- are removed from Unicode.Char.Case +import qualified Unicode.Char.Case.Compat as UCharCompat import Data.Foldable (traverse_) import Test.Hspec @@ -45,7 +51,7 @@ spec = do it "isControl" do UChar.isControl `shouldBeEqualTo` Char.isControl it "isLetter" do - UChar.isLetter `shouldBeEqualTo` Char.isLetter + UCharCompat.isLetter `shouldBeEqualTo` Char.isLetter it "isMark" do UChar.isMark `shouldBeEqualTo` Char.isMark it "isNumber" do @@ -57,14 +63,14 @@ spec = do it "isSeparator" do UChar.isSeparator `shouldBeEqualTo` Char.isSeparator it "isSpace" do - UChar.isSpace `shouldBeEqualTo` Char.isSpace + UCharCompat.isSpace `shouldBeEqualTo` Char.isSpace it "isSymbol" do UChar.isSymbol `shouldBeEqualTo` Char.isSymbol describe' "Case" do it "isLower" do - UChar.isLower `shouldBeEqualTo` Char.isLower + UCharCompat.isLower `shouldBeEqualTo` Char.isLower it "isUpper" do - UChar.isUpper `shouldBeEqualTo` Char.isUpper + UCharCompat.isUpper `shouldBeEqualTo` Char.isUpper it "toLower" do UChar.toLower `shouldBeEqualTo` Char.toLower it "toUpper" do