@@ -1,11 +1,14 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
3−module Data.Text.Utf16 where
3+module Data.Text.Utf16
5import GHC.Exts
10import GHC.Exts
6−import GHC.Word
11+import GHC.Word (Word16(..))
10chr2 :: Word16 -> Word16 -> Char
13chr2 :: Word16 -> Word16 -> Char
11chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
14chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
@@ -18,7 +21,9 @@ chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
19validate1 :: Word16 -> Bool
22validate1 :: Word16 -> Bool
20validate1 x1 = (x1 >= 0 && x1 < 0xD800) || (x1 > 0xDFFF && x1 < 0x10000)
23validate1 x1 = (x1 >= 0 && x1 < 0xD800) || (x1 > 0xDFFF && x1 < 0x10000)
24+{-# INLINE validate1 #-}
22validate2 :: Word16 -> Word16 -> Bool
26validate2 :: Word16 -> Word16 -> Bool
23−validate2 x1 x2 = (x1 >= 0xD800 && x1 <= 0xDBFF) &&
27+validate2 x1 x2 = x1 >= 0xD800 && x1 <= 0xDBFF &&
24− (x2 >= 0xDC00 && x2 <= 0xDFFF)
28+ x2 >= 0xDC00 && x2 <= 0xDFFF
29+{-# INLINE validate2 #-}