11module Data.String
22 (
3- Char (),
43 charAt ,
54 charAt' ,
65 charCodeAt ,
76 charCodeOf ,
8- fromArray ,
7+ fromCharArray ,
8+ fromChar ,
99 fromCharCode ,
1010 fromCharCode' ,
1111 indexOf ,
@@ -18,16 +18,17 @@ module Data.String
1818 take ,
1919 drop ,
2020 split ,
21- toArray ,
21+ toCharArray ,
2222 toLower ,
2323 toUpper ,
2424 trim ,
2525 joinWith
2626 ) where
2727
2828 import Data.Maybe
29+ import Data.Char
2930
30- newtype Char = Char String
31+ foreign import _unsafe MkChar " function _unsafeMkChar(s){return s;} " :: String -> Char
3132
3233 -- | Deprecated
3334 foreign import charAt
@@ -41,10 +42,13 @@ module Data.String
4142 charAt' n s =
4243 case charAt n s of
4344 " " -> Nothing
44- c -> Just $ Char c
45+ c -> Just $ _unsafeMkChar c
46+
47+ fromChar :: Char -> String
48+ fromChar = charString
4549
4650 charCodeOf :: Char -> Number
47- charCodeOf ( Char s ) = charCodeAt 0 s
51+ charCodeOf c = charCodeAt 0 ( charString c )
4852
4953 foreign import charCodeAt
5054 " function charCodeAt(i) {\
@@ -53,8 +57,8 @@ module Data.String
5357 \ };\
5458 \}" :: Number -> String -> Number
5559
56- foreign import from Array
57- " function fromArray (a) {\
60+ foreign import from CharArray
61+ " function fromCharArray (a) {\
5862 \ return a.join(''); \
5963 \" :: [Char ] -> String
6064
@@ -65,7 +69,7 @@ module Data.String
6569 \}" :: Number -> String
6670
6771 fromCharCode' :: Number -> Char
68- fromCharCode' c = Char $ fromCharCode c
72+ fromCharCode' c = _unsafe MkChar $ fromCharCode c
6973
7074 foreign import indexOf
7175 " function indexOf(x) {\
@@ -141,8 +145,8 @@ module Data.String
141145 \ };\
142146 \}" :: String -> String -> [String ]
143147
144- foreign import to Array
145- " function toArray (s) {\
148+ foreign import to CharArray
149+ " function toCharArray (s) {\
146150 \ return s.split('');\
147151 \}" :: String -> [Char ]
148152
0 commit comments