module Language.Java.Character.IsSpaceChar
(
IsSpaceChar(..)
) where
import Data.Char
import Data.Word
import Data.Set.Diet(Diet)
import qualified Data.Set.Diet as S
class Enum c => IsSpaceChar c where
isSpaceChar ::
c
-> Bool
isNotSpaceChar ::
c
-> Bool
isNotSpaceChar =
not . isSpaceChar
instance IsSpaceChar Char where
isSpaceChar c =
ord c `S.member` isSpaceCharSet
instance IsSpaceChar Int where
isSpaceChar c =
c `S.member` isSpaceCharSet
instance IsSpaceChar Integer where
isSpaceChar c =
c `S.member` isSpaceCharSet
instance IsSpaceChar Word8 where
isSpaceChar c =
c `S.member` isSpaceCharSet
instance IsSpaceChar Word16 where
isSpaceChar c =
c `S.member` isSpaceCharSet
instance IsSpaceChar Word32 where
isSpaceChar c =
c `S.member` isSpaceCharSet
instance IsSpaceChar Word64 where
isSpaceChar c =
c `S.member` isSpaceCharSet
isSpaceCharSet ::
(Num a, Enum a, Ord a) =>
Diet a
isSpaceCharSet =
let r = [
[32]
, [160]
, [5760]
, [6158]
, [8192..8203]
, [8232..8233]
, [8239]
, [8287]
, [12288]
]
in S.fromList . concat $ r