@@ -4,11 +4,13 @@
44
55### Types
66
7+
78 data Ordering where
89 LT :: Ordering
910 GT :: Ordering
1011 EQ :: Ordering
1112
13+
1214 newtype Unit where
1315 Unit :: { } -> Unit
1416
@@ -17,171 +19,265 @@
1719
1820
1921
22+
2023 class (Apply f) <= Applicative f where
24+
2125 pure :: forall a. a -> f a
2226
27+
2328 class (Functor f) <= Apply f where
29+
2430 (<*>) :: forall a b. f (a -> b) -> f a -> f b
2531
32+
2633 class (Apply m) <= Bind m where
34+
2735 (>>=) :: forall a b. m a -> (a -> m b) -> m b
2836
37+
2938 class Bits b where
39+
3040 (.&.) :: b -> b -> b
41+
3142 (.|.) :: b -> b -> b
43+
3244 (.^.) :: b -> b -> b
45+
3346 shl :: b -> Number -> b
47+
3448 shr :: b -> Number -> b
49+
3550 zshr :: b -> Number -> b
51+
3652 complement :: b -> b
3753
54+
3855 class BoolLike b where
56+
3957 (&&) :: b -> b -> b
58+
4059 (||) :: b -> b -> b
60+
4161 not :: b -> b
4262
63+
4364 class (Semigroupoid a) <= Category a where
65+
4466 id :: forall t. a t t
4567
68+
4669 class Eq a where
70+
4771 (==) :: a -> a -> Boolean
72+
4873 (/=) :: a -> a -> Boolean
4974
75+
5076 class Functor f where
77+
5178 (<$>) :: forall a b. (a -> b) -> f a -> f b
5279
80+
5381 class (Applicative m, Bind m) <= Monad m where
5482
83+
5584 class Num a where
85+
5686 (+) :: a -> a -> a
87+
5788 (-) :: a -> a -> a
89+
5890 (*) :: a -> a -> a
91+
5992 (/) :: a -> a -> a
93+
6094 (%) :: a -> a -> a
95+
6196 negate :: a -> a
6297
98+
6399 class (Eq a) <= Ord a where
100+
64101 compare :: a -> a -> Ordering
65102
103+
66104 class Semigroup a where
105+
67106 (<>) :: a -> a -> a
68107
108+
69109 class Semigroupoid a where
110+
70111 (<<<) :: forall b c d. a c d -> a b c -> a b d
71112
113+
72114 class Show a where
115+
73116 show :: a -> String
74117
75118
76119### Type Class Instances
77120
121+
78122 instance applicativeArr :: Applicative (Prim.Function r)
79123
124+
80125 instance applyArr :: Apply (Prim.Function r)
81126
127+
82128 instance bindArr :: Bind (Prim.Function r)
83129
130+
84131 instance bitsNumber :: Bits Number
85132
133+
86134 instance boolLikeBoolean :: BoolLike Boolean
87135
136+
88137 instance categoryArr :: Category Prim.Function
89138
139+
90140 instance eqArray :: (Eq a) => Eq [a]
91141
142+
92143 instance eqBoolean :: Eq Boolean
93144
145+
94146 instance eqNumber :: Eq Number
95147
148+
96149 instance eqOrdering :: Eq Ordering
97150
151+
98152 instance eqString :: Eq String
99153
154+
100155 instance eqUnit :: Eq Unit
101156
157+
102158 instance functorArr :: Functor (Prim.Function r)
103159
160+
104161 instance monadArr :: Monad (Prim.Function r)
105162
163+
106164 instance numNumber :: Num Number
107165
166+
108167 instance ordArray :: (Ord a) => Ord [a]
109168
169+
110170 instance ordBoolean :: Ord Boolean
111171
172+
112173 instance ordNumber :: Ord Number
113174
175+
114176 instance ordString :: Ord String
115177
178+
116179 instance ordUnit :: Ord Unit
117180
181+
118182 instance semigroupArr :: (Semigroup s') => Semigroup (s -> s')
119183
184+
120185 instance semigroupString :: Semigroup String
121186
187+
122188 instance semigroupUnit :: Semigroup Unit
123189
190+
124191 instance semigroupoidArr :: Semigroupoid Prim.Function
125192
193+
126194 instance showArray :: (Show a) => Show [a]
127195
196+
128197 instance showBoolean :: Show Boolean
129198
199+
130200 instance showNumber :: Show Number
131201
202+
132203 instance showOrdering :: Show Ordering
133204
205+
134206 instance showString :: Show String
135207
208+
136209 instance showUnit :: Show Unit
137210
138211
139212### Values
140213
214+
141215 (#) :: forall a b. a -> (a -> b) -> b
142216
217+
143218 ($) :: forall a b. (a -> b) -> a -> b
144219
220+
145221 (++) :: forall s. (Semigroup s) => s -> s -> s
146222
223+
147224 (:) :: forall a. a -> [a] -> [a]
148225
226+
149227 (<#>) :: forall f a b. (Functor f) => f a -> (a -> b) -> f b
150228
229+
151230 (<) :: forall a. (Ord a) => a -> a -> Boolean
152231
232+
153233 (<=) :: forall a. (Ord a) => a -> a -> Boolean
154234
235+
155236 (>) :: forall a. (Ord a) => a -> a -> Boolean
156237
238+
157239 (>=) :: forall a. (Ord a) => a -> a -> Boolean
158240
241+
159242 (>>>) :: forall a b c d. (Semigroupoid a) => a b c -> a c d -> a b d
160243
244+
161245 ap :: forall m a b. (Monad m) => m (a -> b) -> m a -> m b
162246
247+
163248 asTypeOf :: forall a. a -> a -> a
164249
250+
165251 cons :: forall a. a -> [a] -> [a]
166252
253+
167254 const :: forall a b. a -> b -> a
168255
256+
169257 flip :: forall a b c. (a -> b -> c) -> b -> a -> c
170258
259+
171260 liftA1 :: forall f a b. (Applicative f) => (a -> b) -> f a -> f b
172261
262+
173263 liftM1 :: forall m a b. (Monad m) => (a -> b) -> m a -> m b
174264
265+
175266 otherwise :: Boolean
176267
268+
177269 refEq :: forall a. a -> a -> Boolean
178270
271+
179272 refIneq :: forall a. a -> a -> Boolean
180273
274+
181275 return :: forall m a. (Monad m) => a -> m a
182276
277+
183278 unit :: Unit
184279
280+
185281 void :: forall f a. (Functor f) => f a -> f Unit
186282
187283
@@ -189,102 +285,117 @@
189285
190286### Types
191287
288+
192289 data Fn0 :: * -> *
193290
291+
194292 data Fn1 :: * -> * -> *
195293
294+
196295 data Fn10 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
197296
297+
198298 data Fn2 :: * -> * -> * -> *
199299
300+
200301 data Fn3 :: * -> * -> * -> * -> *
201302
303+
202304 data Fn4 :: * -> * -> * -> * -> * -> *
203305
306+
204307 data Fn5 :: * -> * -> * -> * -> * -> * -> *
205308
309+
206310 data Fn6 :: * -> * -> * -> * -> * -> * -> * -> *
207311
312+
208313 data Fn7 :: * -> * -> * -> * -> * -> * -> * -> * -> *
209314
315+
210316 data Fn8 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> *
211317
318+
212319 data Fn9 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
213320
214321
215322### Values
216323
324+
217325 mkFn0 :: forall a. (Unit -> a) -> Fn0 a
218326
327+
219328 mkFn1 :: forall a b. (a -> b) -> Fn1 a b
220329
330+
221331 mkFn10 :: forall a b c d e f g h i j k. (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k) -> Fn10 a b c d e f g h i j k
222332
333+
223334 mkFn2 :: forall a b c. (a -> b -> c) -> Fn2 a b c
224335
336+
225337 mkFn3 :: forall a b c d. (a -> b -> c -> d) -> Fn3 a b c d
226338
339+
227340 mkFn4 :: forall a b c d e. (a -> b -> c -> d -> e) -> Fn4 a b c d e
228341
342+
229343 mkFn5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> Fn5 a b c d e f
230344
345+
231346 mkFn6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> Fn6 a b c d e f g
232347
348+
233349 mkFn7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> Fn7 a b c d e f g h
234350
351+
235352 mkFn8 :: forall a b c d e f g h i. (a -> b -> c -> d -> e -> f -> g -> h -> i) -> Fn8 a b c d e f g h i
236353
354+
237355 mkFn9 :: forall a b c d e f g h i j. (a -> b -> c -> d -> e -> f -> g -> h -> i -> j) -> Fn9 a b c d e f g h i j
238356
357+
239358 on :: forall a b c. (b -> b -> c) -> (a -> b) -> a -> a -> c
240359
360+
241361 runFn0 :: forall a. Fn0 a -> a
242362
243− runFn1 :: forall a b. Fn1 a b -> a -> b
244363
245− runFn10 :: forall a b c d e f g h i j k. Fn10 a b c d e f g h i j k -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k
246−
247− runFn2 :: forall a b c. Fn2 a b c -> a -> b -> c
364+ runFn1 :: forall a b. Fn1 a b -> a -> b
248365
249− runFn3 :: forall a b c d. Fn3 a b c d -> a -> b -> c -> d
250366
251− runFn4 :: forall a b c d e. Fn4 a b c d e -> a -> b -> c -> d -> e
367+ runFn10 :: forall a b c d e f g h i j k. Fn10 a b c d e f g h i j k -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k
252368
253− runFn5 :: forall a b c d e f. Fn5 a b c d e f -> a -> b -> c -> d -> e -> f
254369
255− runFn6 :: forall a b c d e f g. Fn6 a b c d e f g -> a -> b -> c -> d -> e -> f -> g
370+ runFn2 :: forall a b c. Fn2 a b c -> a -> b -> c
256371
257− runFn7 :: forall a b c d e f g h. Fn7 a b c d e f g h -> a -> b -> c -> d -> e -> f -> g -> h
258372
259− runFn8 :: forall a b c d e f g h i. Fn8 a b c d e f g h i -> a -> b -> c -> d -> e -> f -> g -> h -> i
373+ runFn3 :: forall a b c d. Fn3 a b c d -> a -> b -> c -> d
260374
261− runFn9 :: forall a b c d e f g h i j. Fn9 a b c d e f g h i j -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j
262375
376+ runFn4 :: forall a b c d e. Fn4 a b c d e -> a -> b -> c -> d -> e
263377
264−## Module Data.Eq
265378
266−### Types
379+ runFn5 :: forall a b c d e f. Fn5 a b c d e f -> a -> b -> c -> d -> e -> f
267380
268− newtype Ref a where
269− Ref :: a -> Ref a
270381
382+ runFn6 :: forall a b c d e f g. Fn6 a b c d e f g -> a -> b -> c -> d -> e -> f -> g
271383
272−### Type Class Instances
273384
274− instance eqRef :: Eq (Ref a)
385+ runFn7 :: forall a b c d e f g h. Fn7 a b c d e f g h -> a -> b -> c -> d -> e -> f -> g -> h
275386
276− instance functorRef :: Functor Ref
277387
388+ runFn8 :: forall a b c d e f g h i. Fn8 a b c d e f g h i -> a -> b -> c -> d -> e -> f -> g -> h -> i
278389
279−### Values
280390
281− liftRef :: forall a b. (a -> a -> b) -> Ref a -> Ref a -> b
391+ runFn9 :: forall a b c d e f g h i j. Fn9 a b c d e f g h i j -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j
282392
283393
284394## Module Prelude.Unsafe
285395
286396### Values
287397
398+
288399 unsafeIndex :: forall a. [a] -> Number -> a
289400
290401
@@ -292,38 +403,52 @@
292403
293404### Types
294405
406+
295407 data Eff :: # ! -> * -> *
296408
409+
297410 type Pure a = forall e. Eff e a
298411
299412
300413### Type Class Instances
301414
415+
302416 instance applicativeEff :: Applicative (Eff e)
303417
418+
304419 instance applyEff :: Apply (Eff e)
305420
421+
306422 instance bindEff :: Bind (Eff e)
307423
424+
308425 instance functorEff :: Functor (Eff e)
309426
427+
310428 instance monadEff :: Monad (Eff e)
311429
312430
313431### Values
314432
433+
315434 bindE :: forall e a b. Eff e a -> (a -> Eff e b) -> Eff e b
316435
436+
317437 forE :: forall e. Number -> Number -> (Number -> Eff e Unit) -> Eff e Unit
318438
439+
319440 foreachE :: forall e a. [a] -> (a -> Eff e Unit) -> Eff e Unit
320441
442+
321443 returnE :: forall e a. a -> Eff e a
322444
445+
323446 runPure :: forall a. Pure a -> a
324447
448+
325449 untilE :: forall e. Eff e Boolean -> Eff e Unit
326450
451+
327452 whileE :: forall e a. Eff e Boolean -> Eff e a -> Eff e Unit
328453
329454
@@ -331,6 +456,7 @@
331456
332457### Values
333458
459+
334460 unsafeInterleaveEff :: forall eff1 eff2 a. Eff eff1 a -> Eff eff2 a
335461
336462
@@ -338,13 +464,16 @@
338464
339465### Types
340466
467+
341468 data Trace :: !
342469
343470
344471### Values
345472
473+
346474 print :: forall a r. (Show a) => a -> Eff (trace :: Trace | r) Unit
347475
476+
348477 trace :: forall r. String -> Eff (trace :: Trace | r) Unit
349478
350479
@@ -352,23 +481,31 @@
352481
353482### Types
354483
484+
355485 data ST :: * -> !
356486
487+
357488 data STRef :: * -> * -> *
358489
359490
360491### Values
361492
493+
362494 modifySTRef :: forall a h r. STRef h a -> (a -> a) -> Eff (st :: ST h | r) a
363495
496+
364497 newSTRef :: forall a h r. a -> Eff (st :: ST h | r) (STRef h a)
365498
499+
366500 pureST :: forall a. (forall h r. Eff (st :: ST h | r) a) -> a
367501
502+
368503 readSTRef :: forall a h r. STRef h a -> Eff (st :: ST h | r) a
369504
505+
370506 runST :: forall a r. (forall h. Eff (st :: ST h | r) a) -> Eff r a
371507
508+
372509 writeSTRef :: forall a h r. STRef h a -> a -> Eff (st :: ST h | r) a
373510
374511