@@ -2,684 +2,1146 @@
3## Module Prelude
3## Module Prelude
9− data Ordering
7+#### `otherwise`
14−#### `Unit`
9+``` purescript
16− newtype Unit
13+An alias for `true`, which can be useful in guard clauses:
20−### Type Classes
17+ max x y | x >= y = x
22−
20+#### `flip`
24−#### `Applicative`
22+``` purescript
23+flip :: forall a b c. (a -> b -> c) -> b -> a -> c
26− class (Apply f) <= Applicative f where
26+Flips the order of the arguments to a function of two arguments.
27− pure :: forall a. a -> f a
29−#### `Apply`
28+#### `const`
31− class (Functor f) <= Apply f where
30+``` purescript
32− (<*>) :: forall a b. f (a -> b) -> f a -> f b
31+const :: forall a b. a -> b -> a
34−#### `Bind`
34+Returns its first argument and ignores its second.
36− class (Apply m) <= Bind m where
38+``` purescript
37− (>>=) :: forall a b. m a -> (a -> m b) -> m b
39+asTypeOf :: forall a. a -> a -> a
39−#### `Bits`
42+This function returns its first argument, and can be used to assert type equalities.
43+This can be useful when types are otherwise ambiguous.
47+ main = print $ [] `asTypeOf` [0]
49+If instead, we had written `main = print []`, the type of the argument `[]` would have
50+been ambiguous, resulting in a compile-time error.
41− class Bits b where
55+class Semigroupoid a where
42− (.&.) :: b -> b -> b
56+ (<<<) :: forall b c d. a c d -> a b c -> a b d
43− (.|.) :: b -> b -> b
57+```
44− (.^.) :: b -> b -> b
58+
45− shl :: b -> Number -> b
59+A `Semigroupoid` is similar to a [`Category`](#Category) but does not require an identity
46− shr :: b -> Number -> b
60+element `id`, just composable morphisms.
47− zshr :: b -> Number -> b
61+
48− complement :: b -> b
62+`Semigroupoid`s should obey the following rule:
65+ `forall p q r. p <<< (q <<< r) = (p <<< q) <<< r`
68+#### `semigroupoidArr`
71+instance semigroupoidArr :: Semigroupoid Prim.Function
52− class BoolLike b where
75+#### `(>>>)`
53− (&&) :: b -> b -> b
76+
54− (||) :: b -> b -> b
77+``` purescript
55− not :: b -> b
78+(>>>) :: forall a b c d. (Semigroupoid a) => a b c -> a c d -> a b d
57#### `Category`
82#### `Category`
59− class (Semigroupoid a) <= Category a where
85+class (Semigroupoid a) <= Category a where
60− id :: forall t. a t t
86+ id :: forall t. a t t
62−#### `DivisionRing`
89+`Category`s consist of objects and composable morphisms between them, and as such are
90+[`Semigroupoids`](#Semigroupoid), but unlike `semigroupoids` must have an identity element.
64−Ring where every nonzero element has a multiplicative inverse (possibly
92+`Category`s should obey the following rules.
65−a non-commutative field) so that ```a `mod` b = zero```
67− class (Ring a, ModuloSemiring a) <= DivisionRing a where
94+Left Identity:
95+ `forall p. id <<< p = p`
98+ `forall p. p <<< id = p`
104+instance categoryArr :: Category Prim.Function
111+($) :: forall a b. (a -> b) -> a -> b
69−#### `Eq`
115+#### `(#)`
118+(#) :: forall a b. a -> (a -> b) -> b
125+(:) :: forall a. a -> [a] -> [a]
132+cons :: forall a. a -> [a] -> [a]
147+instance showUnit :: Show Unit
154+instance showString :: Show String
161+instance showBoolean :: Show Boolean
168+instance showNumber :: Show Number
175+instance showArray :: (Show a) => Show [a]
72− (==) :: a -> a -> Boolean
73− (/=) :: a -> a -> Boolean
75#### `Functor`
179#### `Functor`
77− class Functor f where
182+class Functor f where
78− (<$>) :: forall a b. (a -> b) -> f a -> f b
183+ (<$>) :: forall a b. (a -> b) -> f a -> f b
80−#### `ModuloSemiring`
186+A `Functor` is intuitively a type which can be mapped over, and more formally a mapping
187+between [`Category`](#Category)s that preserves structure.
82−Semiring with modulo operation and division where
189+`Functor`s should obey the following rules.
83−```a / b * b + (a `mod` b) = a```
85− class (Semiring a) <= ModuloSemiring a where
191+Identity:
86− (/) :: a -> a -> a
192+ `(<$>) id = id`
89−#### `Monad`
194+Composition:
195+ `forall f g. (<$>) (f . g) = ((<$>) f) . ((<$>) g)`
91− class (Applicative m, Bind m) <= Monad m where
93−#### `Num`
198+#### `(<#>)`
95−A commutative field
200+``` purescript
201+(<#>) :: forall f a b. (Functor f) => f a -> (a -> b) -> f b
97− class (DivisionRing a) <= Num a where
99−#### `Ord`
205+#### `void`
101− class (Eq a) <= Ord a where
207+``` purescript
102− compare :: a -> a -> Ordering
208+void :: forall f a. (Functor f) => f a -> f Unit
106−Addition, multiplication, and subtraction
212+#### `Apply`
108− class (Semiring a) <= Ring a where
215+class (Functor f) <= Apply f where
109− (-) :: a -> a -> a
216+ (<*>) :: forall a b. f (a -> b) -> f a -> f b
111−#### `Semigroup`
219+`Apply`s are intuitively [`Applicative`](#Applicative)s less `pure`, and more formally a
220+strong lax semi-monoidal endofunctor.
113− class Semigroup a where
222+`Apply`s should obey the following rules.
116−#### `Semigroupoid`
224+Associative Composition:
225+ `forall f g h. (.) <$> f <*> g <*> h = f <*> (g <*> h)`
118− class Semigroupoid a where
119− (<<<) :: forall b c d. a c d -> a b c -> a b d
121−#### `Semiring`
228+#### `Applicative`
123−Addition and multiplication
230+``` purescript
231+class (Apply f) <= Applicative f where
232+ pure :: forall a. a -> f a
125− class Semiring a where
235+`Applicative`s are [`Functor`](#Functor)s which can be "applied" by sequencing composition
126− (+) :: a -> a -> a
236+(`<*>`) or embedding pure expressions (`pure`).
131−#### `Show`
238+`Applicative`s should obey the following rules.
133− class Show a where
240+Identity:
134− show :: a -> String
241+ `forall v. (pure id) <*> v = v`
244+ `forall f g h. (pure (.)) <*> f <*> g <*> h = f <*> (g <*> h)`
137−### Type Class Instances
246+Homomorphism:
247+ `forall f x. (pure f) <*> (pure x) = pure (f x)`
250+ `forall u y. u <*> (pure y) = (pure (($) y)) <*> u`
139−#### `applicativeArr`
256+liftA1 :: forall f a b. (Applicative f) => (a -> b) -> f a -> f b
263+class (Apply m) <= Bind m where
264+ (>>=) :: forall a b. m a -> (a -> m b) -> m b
267+A `Bind` is an [`Apply`](#Apply) with a bind operation which sequentially composes actions.
269+`Bind`s should obey the following rule.
272+ `forall f g x. (x >>= f) >>= g = x >>= (\k => f k >>= g)`
278+class (Applicative m, Bind m) <= Monad m where
281+`Monad` is a class which can be intuitively thought of as an abstract datatype of actions or
282+more formally though of as a monoid in the category of endofunctors.
284+`Monad`s should obey the following rules.
287+ `forall f x. pure x >>= f = f x`
290+ `forall x. x >>= pure = x`
296+return :: forall m a. (Monad m) => a -> m a
303+liftM1 :: forall m a b. (Monad m) => (a -> b) -> m a -> m b
310+ap :: forall m a b. (Monad m) => m (a -> b) -> m a -> m b
141− instance applicativeArr :: Applicative (Prim.Function r)
317+instance functorArr :: Functor (Prim.Function r)
143#### `applyArr`
321#### `applyArr`
145− instance applyArr :: Apply (Prim.Function r)
324+instance applyArr :: Apply (Prim.Function r)
328+#### `applicativeArr`
331+instance applicativeArr :: Applicative (Prim.Function r)
147#### `bindArr`
335#### `bindArr`
149− instance bindArr :: Bind (Prim.Function r)
338+instance bindArr :: Bind (Prim.Function r)
153− instance bitsNumber :: Bits Number
342+#### `monadArr`
155−#### `boolLikeBoolean`
344+``` purescript
345+instance monadArr :: Monad (Prim.Function r)
157− instance boolLikeBoolean :: BoolLike Boolean
159−#### `categoryArr`
349+#### `Semiring`
161− instance categoryArr :: Category Prim.Function
351+``` purescript
352+class Semiring a where
163−#### `divisionRingNumber`
359+Addition and multiplication
165− instance divisionRingNumber :: DivisionRing Number
361+#### `ModuloSemiring`
167−#### `eqArray`
363+``` purescript
364+class (Semiring a) <= ModuloSemiring a where
169− instance eqArray :: (Eq a) => Eq [a]
369+Semiring with modulo operation and division where
370+```a / b * b + (a `mod` b) = a```
171−#### `eqBoolean`
372+#### `Ring`
173− instance eqBoolean :: Eq Boolean
374+``` purescript
375+class (Semiring a) <= Ring a where
175−#### `eqNumber`
379+Addition, multiplication, and subtraction
177− instance eqNumber :: Eq Number
381+#### `negate`
179−#### `eqOrdering`
383+``` purescript
384+negate :: forall a. (Ring a) => a -> a
181− instance eqOrdering :: Eq Ordering
183−#### `eqString`
388+#### `DivisionRing`
185− instance eqString :: Eq String
390+``` purescript
391+class (Ring a, ModuloSemiring a) <= DivisionRing a where
187−#### `eqUnit`
394+Ring where every nonzero element has a multiplicative inverse (possibly
395+a non-commutative field) so that ```a `mod` b = zero```
189− instance eqUnit :: Eq Unit
399+``` purescript
400+class (DivisionRing a) <= Num a where
191−#### `functorArr`
403+A commutative field
405+#### `semiringNumber`
408+instance semiringNumber :: Semiring Number
415+instance ringNumber :: Ring Number
193− instance functorArr :: Functor (Prim.Function r)
195#### `moduloSemiringNumber`
419#### `moduloSemiringNumber`
197− instance moduloSemiringNumber :: ModuloSemiring Number
422+instance moduloSemiringNumber :: ModuloSemiring Number
201− instance monadArr :: Monad (Prim.Function r)
426+#### `divisionRingNumber`
429+instance divisionRingNumber :: DivisionRing Number
203#### `numNumber`
433#### `numNumber`
205− instance numNumber :: Num Number
436+instance numNumber :: Num Number
209− instance ordArray :: (Ord a) => Ord [a]
440+#### `Unit`
211−#### `ordBoolean`
442+``` purescript
213− instance ordBoolean :: Ord Boolean
215−#### `ordNumber`
448+#### `unit`
217− instance ordNumber :: Ord Number
450+``` purescript
221− instance ordString :: Ord String
455+#### `Eq`
223−#### `ordUnit`
457+``` purescript
459+ (==) :: a -> a -> Boolean
460+ (/=) :: a -> a -> Boolean
225− instance ordUnit :: Ord Unit
227−#### `ringNumber`
464+#### `refEq`
229− instance ringNumber :: Ring Number
466+``` purescript
467+refEq :: forall a. a -> a -> Boolean
233− instance semigroupArr :: (Semigroup s') => Semigroup (s -> s')
471+#### `refIneq`
235−#### `semigroupString`
473+``` purescript
474+refIneq :: forall a. a -> a -> Boolean
237− instance semigroupString :: Semigroup String
239−#### `semigroupUnit`
478+#### `eqUnit`
241− instance semigroupUnit :: Semigroup Unit
481+instance eqUnit :: Eq Unit
243−#### `semigroupoidArr`
245− instance semigroupoidArr :: Semigroupoid Prim.Function
485+#### `eqString`
247−#### `semiringNumber`
487+``` purescript
488+instance eqString :: Eq String
249− instance semiringNumber :: Semiring Number
251−#### `showArray`
492+#### `eqNumber`
253− instance showArray :: (Show a) => Show [a]
494+``` purescript
495+instance eqNumber :: Eq Number
257− instance showBoolean :: Show Boolean
499+#### `eqBoolean`
259−#### `showNumber`
501+``` purescript
502+instance eqBoolean :: Eq Boolean
261− instance showNumber :: Show Number
263−#### `showOrdering`
506+#### `eqArray`
265− instance showOrdering :: Show Ordering
508+``` purescript
509+instance eqArray :: (Eq a) => Eq [a]
269− instance showString :: Show String
513+#### `Ordering`
271−#### `showUnit`
515+``` purescript
273− instance showUnit :: Show Unit
276−### Values
525+``` purescript
526+instance eqOrdering :: Eq Ordering
280− (#) :: forall a b. a -> (a -> b) -> b
530+#### `showOrdering`
282−#### `($)`
532+``` purescript
533+instance showOrdering :: Show Ordering
284− ($) :: forall a b. (a -> b) -> a -> b
286−#### `(++)`
537+#### `semigroupOrdening`
288− (++) :: forall s. (Semigroup s) => s -> s -> s
539+``` purescript
540+instance semigroupOrdening :: Semigroup Ordering
292− (:) :: forall a. a -> [a] -> [a]
544+#### `Ord`
294−#### `(<#>)`
546+``` purescript
547+class (Eq a) <= Ord a where
548+ compare :: a -> a -> Ordering
296− (<#>) :: forall f a b. (Functor f) => f a -> (a -> b) -> f b
298#### `(<)`
552#### `(<)`
300− (<) :: forall a. (Ord a) => a -> a -> Boolean
555+(<) :: forall a. (Ord a) => a -> a -> Boolean
304− (<=) :: forall a. (Ord a) => a -> a -> Boolean
306#### `(>)`
559#### `(>)`
308− (>) :: forall a. (Ord a) => a -> a -> Boolean
562+(>) :: forall a. (Ord a) => a -> a -> Boolean
569+(<=) :: forall a. (Ord a) => a -> a -> Boolean
310#### `(>=)`
573#### `(>=)`
312− (>=) :: forall a. (Ord a) => a -> a -> Boolean
576+(>=) :: forall a. (Ord a) => a -> a -> Boolean
316− (>>>) :: forall a b c d. (Semigroupoid a) => a b c -> a c d -> a b d
580+#### `ordUnit`
318−#### `ap`
582+``` purescript
583+instance ordUnit :: Ord Unit
320− ap :: forall m a b. (Monad m) => m (a -> b) -> m a -> m b
322−#### `asTypeOf`
587+#### `ordBoolean`
324−This function returns its first argument, and can be used to assert type equalities.
589+``` purescript
325−This can be useful when types are otherwise ambiguous.
590+instance ordBoolean :: Ord Boolean
329− main = print $ [] `asTypeOf` [0]
594+#### `ordNumber`
331−If instead, we had written `main = print []`, the type of the argument `[]` would have
596+``` purescript
332−been ambiguous, resulting in a compile-time error.
597+instance ordNumber :: Ord Number
334− asTypeOf :: forall a. a -> a -> a
336−#### `cons`
601+#### `ordString`
338− cons :: forall a. a -> [a] -> [a]
603+``` purescript
604+instance ordString :: Ord String
342−Returns its first argument and ignores its second.
608+#### `ordArray`
344− const :: forall a b. a -> b -> a
610+``` purescript
611+instance ordArray :: (Ord a) => Ord [a]
348−Flips the order of the arguments to a function of two arguments.
615+#### `Bits`
350− flip :: forall a b c. (a -> b -> c) -> b -> a -> c
617+``` purescript
619+ (.&.) :: b -> b -> b
620+ (.|.) :: b -> b -> b
621+ (.^.) :: b -> b -> b
622+ shl :: b -> Number -> b
623+ shr :: b -> Number -> b
624+ zshr :: b -> Number -> b
625+ complement :: b -> b
354− liftA1 :: forall f a b. (Applicative f) => (a -> b) -> f a -> f b
629+#### `bitsNumber`
356−#### `liftM1`
631+``` purescript
632+instance bitsNumber :: Bits Number
358− liftM1 :: forall m a b. (Monad m) => (a -> b) -> m a -> m b
360−#### `negate`
636+#### `BoolLike`
362− negate :: forall a. (Ring a) => a -> a
638+``` purescript
639+class BoolLike b where
366−An alias for `true`, which can be useful in guard clauses:
646+#### `boolLikeBoolean`
368−E.g.
648+``` purescript
649+instance boolLikeBoolean :: BoolLike Boolean
370− max x y | x >= y = x
373− otherwise :: Boolean
653+#### `Semigroup`
375−#### `refEq`
655+``` purescript
656+class Semigroup a where
377− refEq :: forall a. a -> a -> Boolean
379−#### `refIneq`
661+#### `semigroupUnit`
381− refIneq :: forall a. a -> a -> Boolean
663+``` purescript
664+instance semigroupUnit :: Semigroup Unit
385− return :: forall m a. (Monad m) => a -> m a
668+#### `semigroupString`
387−#### `unit`
670+``` purescript
671+instance semigroupString :: Semigroup String
391−#### `void`
675+#### `semigroupArr`
678+instance semigroupArr :: (Semigroup s') => Semigroup (s -> s')
685+(++) :: forall s. (Semigroup s) => s -> s -> s
393− void :: forall f a. (Functor f) => f a -> f Unit
396## Module Data.Function
690## Module Data.Function
697+on :: forall a b c. (b -> b -> c) -> (a -> b) -> a -> a -> c
400#### `Fn0`
701#### `Fn0`
402− data Fn0 :: * -> *
704+data Fn0 :: * -> *
406− data Fn1 :: * -> * -> *
708+#### `Fn1`
408−#### `Fn10`
710+``` purescript
711+data Fn1 :: * -> * -> *
410− data Fn10 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
412#### `Fn2`
715#### `Fn2`
414− data Fn2 :: * -> * -> * -> *
718+data Fn2 :: * -> * -> * -> *
416#### `Fn3`
722#### `Fn3`
418− data Fn3 :: * -> * -> * -> * -> *
725+data Fn3 :: * -> * -> * -> * -> *
420#### `Fn4`
729#### `Fn4`
422− data Fn4 :: * -> * -> * -> * -> * -> *
732+data Fn4 :: * -> * -> * -> * -> * -> *
424#### `Fn5`
736#### `Fn5`
426− data Fn5 :: * -> * -> * -> * -> * -> * -> *
739+data Fn5 :: * -> * -> * -> * -> * -> * -> *
428#### `Fn6`
743#### `Fn6`
430− data Fn6 :: * -> * -> * -> * -> * -> * -> * -> *
746+data Fn6 :: * -> * -> * -> * -> * -> * -> * -> *
432#### `Fn7`
750#### `Fn7`
434− data Fn7 :: * -> * -> * -> * -> * -> * -> * -> * -> *
753+data Fn7 :: * -> * -> * -> * -> * -> * -> * -> * -> *
436#### `Fn8`
757#### `Fn8`
438− data Fn8 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> *
760+data Fn8 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> *
440#### `Fn9`
764#### `Fn9`
442− data Fn9 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
767+data Fn9 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
774+data Fn10 :: * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> * -> *
447#### `mkFn0`
778#### `mkFn0`
449− mkFn0 :: forall a. (Unit -> a) -> Fn0 a
781+mkFn0 :: forall a. (Unit -> a) -> Fn0 a
453− mkFn1 :: forall a b. (a -> b) -> Fn1 a b
785+#### `mkFn1`
455−#### `mkFn10`
787+``` purescript
788+mkFn1 :: forall a b. (a -> b) -> Fn1 a b
457− 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
459#### `mkFn2`
792#### `mkFn2`
461− mkFn2 :: forall a b c. (a -> b -> c) -> Fn2 a b c
795+mkFn2 :: forall a b c. (a -> b -> c) -> Fn2 a b c
463#### `mkFn3`
799#### `mkFn3`
465− mkFn3 :: forall a b c d. (a -> b -> c -> d) -> Fn3 a b c d
802+mkFn3 :: forall a b c d. (a -> b -> c -> d) -> Fn3 a b c d
467#### `mkFn4`
806#### `mkFn4`
469− mkFn4 :: forall a b c d e. (a -> b -> c -> d -> e) -> Fn4 a b c d e
809+mkFn4 :: forall a b c d e. (a -> b -> c -> d -> e) -> Fn4 a b c d e
471#### `mkFn5`
813#### `mkFn5`
473− mkFn5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> Fn5 a b c d e f
816+mkFn5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> Fn5 a b c d e f
475#### `mkFn6`
820#### `mkFn6`
477− mkFn6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> Fn6 a b c d e f g
823+mkFn6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> Fn6 a b c d e f g
479#### `mkFn7`
827#### `mkFn7`
481− 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
830+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
483#### `mkFn8`
834#### `mkFn8`
485− 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
837+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
487#### `mkFn9`
841#### `mkFn9`
489− 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
844+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
493− on :: forall a b c. (b -> b -> c) -> (a -> b) -> a -> a -> c
848+#### `mkFn10`
851+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
495#### `runFn0`
855#### `runFn0`
497− runFn0 :: forall a. Fn0 a -> a
858+runFn0 :: forall a. Fn0 a -> a
501− runFn1 :: forall a b. Fn1 a b -> a -> b
862+#### `runFn1`
503−#### `runFn10`
864+``` purescript
865+runFn1 :: forall a b. Fn1 a b -> a -> b
505− 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
507#### `runFn2`
869#### `runFn2`
509− runFn2 :: forall a b c. Fn2 a b c -> a -> b -> c
872+runFn2 :: forall a b c. Fn2 a b c -> a -> b -> c
511#### `runFn3`
876#### `runFn3`
513− runFn3 :: forall a b c d. Fn3 a b c d -> a -> b -> c -> d
879+runFn3 :: forall a b c d. Fn3 a b c d -> a -> b -> c -> d
515#### `runFn4`
883#### `runFn4`
517− runFn4 :: forall a b c d e. Fn4 a b c d e -> a -> b -> c -> d -> e
886+runFn4 :: forall a b c d e. Fn4 a b c d e -> a -> b -> c -> d -> e
519#### `runFn5`
890#### `runFn5`
521− runFn5 :: forall a b c d e f. Fn5 a b c d e f -> a -> b -> c -> d -> e -> f
893+runFn5 :: forall a b c d e f. Fn5 a b c d e f -> a -> b -> c -> d -> e -> f
523#### `runFn6`
897#### `runFn6`
525− runFn6 :: forall a b c d e f g. Fn6 a b c d e f g -> a -> b -> c -> d -> e -> f -> g
900+runFn6 :: forall a b c d e f g. Fn6 a b c d e f g -> a -> b -> c -> d -> e -> f -> g
527#### `runFn7`
904#### `runFn7`
529− 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
907+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
531#### `runFn8`
911#### `runFn8`
533− 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
914+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
535#### `runFn9`
918#### `runFn9`
537− 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
921+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
928+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
540## Module Prelude.Unsafe
933## Module Prelude.Unsafe
544#### `unsafeIndex`
937#### `unsafeIndex`
546− unsafeIndex :: forall a. [a] -> Number -> a
940+unsafeIndex :: forall a. [a] -> Number -> a
549## Module Control.Monad.Eff
945## Module Control.Monad.Eff
553#### `Eff`
949#### `Eff`
555− data Eff :: # ! -> * -> *
952+data Eff :: # ! -> * -> *
559− type Pure a = forall e. Eff e a
956+#### `returnE`
959+returnE :: forall e a. a -> Eff e a
562−### Type Class Instances
564−#### `applicativeEff`
963+#### `bindE`
566− instance applicativeEff :: Applicative (Eff e)
965+``` purescript
966+bindE :: forall e a b. Eff e a -> (a -> Eff e b) -> Eff e b
570− instance applyEff :: Apply (Eff e)
970+#### `Pure`
572−#### `bindEff`
972+``` purescript
973+type Pure a = forall e. Eff e a
574− instance bindEff :: Bind (Eff e)
576−#### `functorEff`
977+#### `runPure`
578− instance functorEff :: Functor (Eff e)
979+``` purescript
980+runPure :: forall a. Pure a -> a
582− instance monadEff :: Monad (Eff e)
984+#### `functorEff`
987+instance functorEff :: Functor (Eff e)
587−#### `bindE`
991+#### `applyEff`
589− bindE :: forall e a b. Eff e a -> (a -> Eff e b) -> Eff e b
993+``` purescript
994+instance applyEff :: Apply (Eff e)
593− forE :: forall e. Number -> Number -> (Number -> Eff e Unit) -> Eff e Unit
998+#### `applicativeEff`
595−#### `foreachE`
1000+``` purescript
1001+instance applicativeEff :: Applicative (Eff e)
597− foreachE :: forall e a. [a] -> (a -> Eff e Unit) -> Eff e Unit
599−#### `returnE`
1005+#### `bindEff`
601− returnE :: forall e a. a -> Eff e a
1007+``` purescript
1008+instance bindEff :: Bind (Eff e)
605− runPure :: forall a. Pure a -> a
1012+#### `monadEff`
1015+instance monadEff :: Monad (Eff e)
607#### `untilE`
1019#### `untilE`
609− untilE :: forall e. Eff e Boolean -> Eff e Unit
1022+untilE :: forall e. Eff e Boolean -> Eff e Unit
611#### `whileE`
1026#### `whileE`
613− whileE :: forall e a. Eff e Boolean -> Eff e a -> Eff e Unit
1029+whileE :: forall e a. Eff e Boolean -> Eff e a -> Eff e Unit
1036+forE :: forall e. Number -> Number -> (Number -> Eff e Unit) -> Eff e Unit
1043+foreachE :: forall e a. [a] -> (a -> Eff e Unit) -> Eff e Unit
616## Module Control.Monad.Eff.Unsafe
1048## Module Control.Monad.Eff.Unsafe
620#### `unsafeInterleaveEff`
1052#### `unsafeInterleaveEff`
622− unsafeInterleaveEff :: forall eff1 eff2 a. Eff eff1 a -> Eff eff2 a
1055+unsafeInterleaveEff :: forall eff1 eff2 a. Eff eff1 a -> Eff eff2 a
625## Module Debug.Trace
1060## Module Debug.Trace
629#### `Trace`
1064#### `Trace`
631− data Trace :: !
1067+data Trace :: !
634−### Values
1071+#### `trace`
636−#### `print`
1073+``` purescript
1074+trace :: forall r. String -> Eff (trace :: Trace | r) Unit
638− print :: forall a r. (Show a) => a -> Eff (trace :: Trace | r) Unit
640−#### `trace`
1078+#### `print`
1081+print :: forall a r. (Show a) => a -> Eff (trace :: Trace | r) Unit
642− trace :: forall r. String -> Eff (trace :: Trace | r) Unit
645## Module Control.Monad.ST
1086## Module Control.Monad.ST
649#### `ST`
1090#### `ST`
651− data ST :: * -> !
1093+data ST :: * -> !
653#### `STRef`
1097#### `STRef`
655− data STRef :: * -> * -> *
1100+data STRef :: * -> * -> *
658−### Values
1104+#### `newSTRef`
660−#### `modifySTRef`
1106+``` purescript
1107+newSTRef :: forall a h r. a -> Eff (st :: ST h | r) (STRef h a)
662− modifySTRef :: forall a h r. STRef h a -> (a -> a) -> Eff (st :: ST h | r) a
664−#### `newSTRef`
1111+#### `readSTRef`
666− newSTRef :: forall a h r. a -> Eff (st :: ST h | r) (STRef h a)
1114+readSTRef :: forall a h r. STRef h a -> Eff (st :: ST h | r) a
670− pureST :: forall a. (forall h r. Eff (st :: ST h | r) a) -> a
1118+#### `modifySTRef`
672−#### `readSTRef`
1120+``` purescript
1121+modifySTRef :: forall a h r. STRef h a -> (a -> a) -> Eff (st :: ST h | r) a
1128+writeSTRef :: forall a h r. STRef h a -> a -> Eff (st :: ST h | r) a
674− readSTRef :: forall a h r. STRef h a -> Eff (st :: ST h | r) a
676#### `runST`
1132#### `runST`
678− runST :: forall a r. (forall h. Eff (st :: ST h | r) a) -> Eff r a
1135+runST :: forall a r. (forall h. Eff (st :: ST h | r) a) -> Eff r a
682− writeSTRef :: forall a h r. STRef h a -> a -> Eff (st :: ST h | r) a
1142+pureST :: forall a. (forall h r. Eff (st :: ST h | r) a) -> a