@@ -51,31 +51,38 @@ import qualified Data.StrMap.ST as SM
5151
5252foreign import data StrMap :: * -> *
5353
54- foreign import _copy " " "
54+ foreign import _copy
55+ " " "
5556 function _copy(m) {
5657 var r = {};
57- for (var k in m)
58- r[k] = m[k]
58+ for (var k in m) {
59+ r[k] = m[k];
60+ }
5961 return r;
60- }" " " :: forall a . StrMap a -> StrMap a
62+ }
63+ " " " :: forall a . StrMap a -> StrMap a
6164
62- foreign import _copyEff " " "
65+ foreign import _copyEff
66+ " " "
6367 function _copyEff(m) {
64- return function () {
68+ return function() {
6569 return _copy(m);
6670 };
67- }" " " :: forall a b h r . a -> Eff (st :: ST.ST h | r ) b
71+ }
72+ " " " :: forall a b h r . a -> Eff (st :: ST.ST h | r ) b
6873
6974thawST :: forall a h r . StrMap a -> Eff (st :: ST.ST h | r ) (SM.STStrMap h a )
7075thawST = _copyEff
7176
7277freezeST :: forall a h r . SM.STStrMap h a -> Eff (st :: ST.ST h | r ) (StrMap a )
7378freezeST = _copyEff
7479
75- foreign import runST " " "
80+ foreign import runST
81+ " " "
7682 function runST(f) {
7783 return f;
78- }" " " :: forall a r . (forall h . Eff (st :: ST.ST h | r ) (SM.STStrMap h a )) -> Eff r (StrMap a )
84+ }
85+ " " " :: forall a r . (forall h . Eff (st :: ST.ST h | r ) (SM.STStrMap h a )) -> Eff r (StrMap a )
7986
8087pureST :: forall a b . (forall h e . Eff (st :: ST.ST h | e ) (SM.STStrMap h a )) -> StrMap a
8188pureST f = runPure (runST f)
@@ -87,33 +94,38 @@ mutate f m = pureST (do
8794 P .return s)
8895
8996foreign import _fmapStrMap
90- " function _fmapStrMap(m0, f) {\
91- \ var m = {};\
92- \ for (var k in m0) {\
93- \ m[k] = f(m0[k]);\
94- \ }\
95- \ return m;\
96- \}" :: forall a b . Fn2 (StrMap a ) (a -> b ) (StrMap b )
97+ " " "
98+ function _fmapStrMap(m0, f) {
99+ var m = {};
100+ for (var k in m0) {
101+ m[k] = f(m0[k]);
102+ }
103+ return m;
104+ }
105+ " " " :: forall a b . Fn2 (StrMap a ) (a -> b ) (StrMap b )
97106
98107instance functorStrMap :: P.Functor StrMap where
99108 (<$>) f m = runFn2 _fmapStrMap m f
100109
101110foreign import _foldM
102- " function _foldM(bind) {\
103- \ return function(f) {\
104- \ return function (mz) {\
105- \ return function (m) {\
106- \ var k;\
107- \ function g(z) {\
108- \ return f(z)(k)(m[k]);\
109- \ }\
110- \ for (k in m)\
111- \ mz = bind(mz)(g);\
112- \ return mz;\
113- \ };\
114- \ };\
115- \ };\
116- \}" :: forall a m z . (m -> (z -> m ) -> m ) -> (z -> String -> a -> m ) -> m -> StrMap a -> m
111+ " " "
112+ function _foldM(bind) {
113+ return function(f) {
114+ return function(mz) {
115+ return function(m) {
116+ var k;
117+ function g(z) {
118+ return f(z)(k)(m[k]);
119+ }
120+ for (k in m) {
121+ mz = bind(mz)(g);
122+ }
123+ return mz;
124+ };
125+ };
126+ };
127+ }
128+ " " " :: forall a m z . (m -> (z -> m ) -> m ) -> (z -> String -> a -> m ) -> m -> StrMap a -> m
117129
118130fold :: forall a z . (z -> String -> a -> z ) -> z -> StrMap a -> z
119131fold = _foldM (P .(#))
@@ -137,27 +149,32 @@ instance traversableStrMap :: Traversable StrMap where
137149-- so we need special cases:
138150
139151foreign import _foldSCStrMap
140- " function _foldSCStrMap(m, z, f, fromMaybe) { \
141- \ for (var k in m) { \
142- \ var maybeR = f(z)(k)(m[k]); \
143- \ var r = fromMaybe(null)(maybeR); \
144- \ if (r === null) return z; \
145- \ else z = r; \
146- \ } \
147- \ return z; \
148- \}" :: forall a z . Fn4 (StrMap a ) z (z -> String -> a -> Maybe z ) (forall a . a -> Maybe a -> a ) z
152+ " " "
153+ function _foldSCStrMap(m, z, f, fromMaybe) {
154+ for (var k in m) {
155+ var maybeR = f(z)(k)(m[k]);
156+ var r = fromMaybe(null)(maybeR);
157+ if (r === null) return z;
158+ else z = r;
159+ }
160+ return z;
161+ }
162+ " " " :: forall a z . Fn4 (StrMap a ) z (z -> String -> a -> Maybe z ) (forall a . a -> Maybe a -> a ) z
149163
150164foldMaybe :: forall a z . (z -> String -> a -> Maybe z ) -> z -> StrMap a -> z
151165foldMaybe f z m = runFn4 _foldSCStrMap m z f fromMaybe
152166
153167foreign import all
154- " function all(f) {\
155- \ return function (m) {\
156- \ for (var k in m)\
157- \ if (!f(k)(m[k])) return false;\
158- \ return true;\
159- \ };\
160- \}" :: forall a . (String -> a -> Boolean ) -> StrMap a -> Boolean
168+ " " "
169+ function all(f) {
170+ return function(m) {
171+ for (var k in m) {
172+ if (!f(k)(m[k])) return false;
173+ }
174+ return true;
175+ };
176+ }
177+ " " " :: forall a . (String -> a -> Boolean ) -> StrMap a -> Boolean
161178
162179instance eqStrMap :: (P.Eq a ) => P.Eq (StrMap a ) where
163180 (==) m1 m2 = (isSubmap m1 m2) P .&& (isSubmap m2 m1)
@@ -175,13 +192,16 @@ isSubmap m1 m2 = all f m1 where
175192isEmpty :: forall a . StrMap a -> Boolean
176193isEmpty = all (\_ _ -> false )
177194
178- foreign import size " function size(m) {\
179- \ var s = 0;\
180- \ for (var k in m) {\
181- \ ++s;\
182- \ }\
183- \ return s;\
184- \}" :: forall a . StrMap a -> Number
195+ foreign import size
196+ " " "
197+ function size(m) {
198+ var s = 0;
199+ for (var k in m) {
200+ ++s;
201+ }
202+ return s;
203+ }
204+ " " " :: forall a . StrMap a -> Number
185205
186206singleton :: forall a . String -> a -> StrMap a
187207singleton k v = pureST (do
@@ -190,9 +210,11 @@ singleton k v = pureST (do
190210 P .return s)
191211
192212foreign import _lookup
193- " function _lookup(no, yes, k, m) {\
194- \ return k in m ? yes(m[k]) : no;\
195- \}" :: forall a z . Fn4 z (a -> z ) String (StrMap a ) z
213+ " " "
214+ function _lookup(no, yes, k, m) {
215+ return k in m ? yes(m[k]) : no;
216+ }
217+ " " " :: forall a z . Fn4 z (a -> z ) String (StrMap a ) z
196218
197219lookup :: forall a . String -> StrMap a -> Maybe a
198220lookup = runFn4 _lookup Nothing Just
@@ -204,10 +226,12 @@ insert :: forall a. String -> a -> StrMap a -> StrMap a
204226insert k v = mutate (\s -> SM .poke s k v)
205227
206228foreign import _unsafeDeleteStrMap
207- " function _unsafeDeleteStrMap(m, k) { \
208- \ delete m[k]; \
209- \ return m; \
210- \}" :: forall a . Fn2 (StrMap a ) String (StrMap a )
229+ " " "
230+ function _unsafeDeleteStrMap(m, k) {
231+ delete m[k];
232+ return m;
233+ }
234+ " " " :: forall a . Fn2 (StrMap a ) String (StrMap a )
211235
212236delete :: forall a . String -> StrMap a -> StrMap a
213237delete k = mutate (\s -> SM .delete s k)
@@ -227,22 +251,27 @@ fromList l = pureST (do
227251 P .return s)
228252
229253foreign import _collect
230- " function _collect(f) {\
231- \ return function (m) {\
232- \ var r = [];\
233- \ for (var k in m)\
234- \ r.push(f(k)(m[k]));\
235- \ return r;\
236- \ };\
237- \}" :: forall a b . (String -> a -> b ) -> StrMap a -> [b ]
254+ " " "
255+ function _collect(f) {
256+ return function(m) {
257+ var r = [];
258+ for (var k in m) {
259+ r.push(f(k)(m[k]));
260+ }
261+ return r;
262+ };
263+ }
264+ " " " :: forall a b . (String -> a -> b ) -> StrMap a -> [b ]
238265
239266toList :: forall a . StrMap a -> [Tuple String a ]
240267toList = _collect Tuple
241268
242269foreign import keys
243- " var keys = Object.keys || _collect(function (k) {\
244- \ return function () { return k; };\
245- \});" :: forall a . StrMap a -> [String ]
270+ " " "
271+ var keys = Object.keys || _collect(function(k) {
272+ return function() { return k; };
273+ });
274+ " " " :: forall a . StrMap a -> [String ]
246275
247276values :: forall a . StrMap a -> [a ]
248277values = _collect (\_ v -> v)
0 commit comments