git.iko.soy/rowtype-yoga/psfp
on 4578f05 help sign in
175 lines 6.6 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var $foreign = require("./foreign.js");
4var Control_Applicative = require("../Control.Applicative/index.js");
5var Control_Apply = require("../Control.Apply/index.js");
6var Data_Eq = require("../Data.Eq/index.js");
7var Data_Function = require("../Data.Function/index.js");
8var Data_Functor = require("../Data.Functor/index.js");
9var Data_HeytingAlgebra = require("../Data.HeytingAlgebra/index.js");
10var Data_Maybe = require("../Data.Maybe/index.js");
11var Data_Monoid = require("../Data.Monoid/index.js");
12var Data_Monoid_Disj = require("../Data.Monoid.Disj/index.js");
13var Data_Newtype = require("../Data.Newtype/index.js");
14var Data_Ordering = require("../Data.Ordering/index.js");
15var Data_Semigroup = require("../Data.Semigroup/index.js");
16var Data_Unit = require("../Data.Unit/index.js");
17var Foldable = function (foldMap, foldl, foldr) {
18 this.foldMap = foldMap;
19 this.foldl = foldl;
20 this.foldr = foldr;
21};
22var foldr = function (dict) {
23 return dict.foldr;
24};
25var traverse_ = function (dictApplicative) {
26 return function (dictFoldable) {
27 return function (f) {
28 return foldr(dictFoldable)((function () {
29 var $155 = Control_Apply.applySecond(dictApplicative.Apply0());
30 return function ($156) {
31 return $155(f($156));
32 };
33 })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));
34 };
35 };
36};
37var for_ = function (dictApplicative) {
38 return function (dictFoldable) {
39 return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));
40 };
41};
42var foldl = function (dict) {
43 return dict.foldl;
44};
45var intercalate = function (dictFoldable) {
46 return function (dictMonoid) {
47 return function (sep) {
48 return function (xs) {
49 var go = function (v) {
50 return function (x) {
51 if (v.init) {
52 return {
53 init: false,
54 acc: x
55 };
56 };
57 return {
58 init: false,
59 acc: Data_Semigroup.append(dictMonoid.Semigroup0())(v.acc)(Data_Semigroup.append(dictMonoid.Semigroup0())(sep)(x))
60 };
61 };
62 };
63 return (foldl(dictFoldable)(go)({
64 init: true,
65 acc: Data_Monoid.mempty(dictMonoid)
66 })(xs)).acc;
67 };
68 };
69 };
70};
71var minimumBy = function (dictFoldable) {
72 return function (cmp) {
73 var min$prime = function (v) {
74 return function (v1) {
75 if (v instanceof Data_Maybe.Nothing) {
76 return new Data_Maybe.Just(v1);
77 };
78 if (v instanceof Data_Maybe.Just) {
79 return new Data_Maybe.Just((function () {
80 var $142 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.LT.value);
81 if ($142) {
82 return v.value0;
83 };
84 return v1;
85 })());
86 };
87 throw new Error("Failed pattern match at Data.Foldable (line 402, column 3 - line 402, column 27): " + [ v.constructor.name, v1.constructor.name ]);
88 };
89 };
90 return foldl(dictFoldable)(min$prime)(Data_Maybe.Nothing.value);
91 };
92};
93var foldableMaybe = new Foldable(function (dictMonoid) {
94 return function (f) {
95 return function (v) {
96 if (v instanceof Data_Maybe.Nothing) {
97 return Data_Monoid.mempty(dictMonoid);
98 };
99 if (v instanceof Data_Maybe.Just) {
100 return f(v.value0);
101 };
102 throw new Error("Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): " + [ f.constructor.name, v.constructor.name ]);
103 };
104 };
105}, function (v) {
106 return function (z) {
107 return function (v1) {
108 if (v1 instanceof Data_Maybe.Nothing) {
109 return z;
110 };
111 if (v1 instanceof Data_Maybe.Just) {
112 return v(z)(v1.value0);
113 };
114 throw new Error("Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): " + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);
115 };
116 };
117}, function (v) {
118 return function (z) {
119 return function (v1) {
120 if (v1 instanceof Data_Maybe.Nothing) {
121 return z;
122 };
123 if (v1 instanceof Data_Maybe.Just) {
124 return v(v1.value0)(z);
125 };
126 throw new Error("Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): " + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);
127 };
128 };
129});
130var foldMapDefaultR = function (dictFoldable) {
131 return function (dictMonoid) {
132 return function (f) {
133 return foldr(dictFoldable)(function (x) {
134 return function (acc) {
135 return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);
136 };
137 })(Data_Monoid.mempty(dictMonoid));
138 };
139 };
140};
141var foldableArray = new Foldable(function (dictMonoid) {
142 return foldMapDefaultR(foldableArray)(dictMonoid);
143}, $foreign.foldlArray, $foreign.foldrArray);
144var foldMap = function (dict) {
145 return dict.foldMap;
146};
147var any = function (dictFoldable) {
148 return function (dictHeytingAlgebra) {
149 return Data_Newtype.alaF(Data_Functor.functorFn)(Data_Functor.functorFn)(Data_Newtype.newtypeDisj)(Data_Newtype.newtypeDisj)(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));
150 };
151};
152var elem = function (dictFoldable) {
153 return function (dictEq) {
154 var $157 = any(dictFoldable)(Data_HeytingAlgebra.heytingAlgebraBoolean);
155 var $158 = Data_Eq.eq(dictEq);
156 return function ($159) {
157 return $157($158($159));
158 };
159 };
160};
161module.exports = {
162 Foldable: Foldable,
163 foldr: foldr,
164 foldl: foldl,
165 foldMap: foldMap,
166 foldMapDefaultR: foldMapDefaultR,
167 traverse_: traverse_,
168 for_: for_,
169 intercalate: intercalate,
170 any: any,
171 elem: elem,
172 minimumBy: minimumBy,
173 foldableArray: foldableArray,
174 foldableMaybe: foldableMaybe
175};