// Generated by purs version 0.13.6 "use strict"; var $foreign = require("./foreign.js"); var Control_Applicative = require("../Control.Applicative/index.js"); var Control_Apply = require("../Control.Apply/index.js"); var Data_Eq = require("../Data.Eq/index.js"); var Data_Function = require("../Data.Function/index.js"); var Data_Functor = require("../Data.Functor/index.js"); var Data_HeytingAlgebra = require("../Data.HeytingAlgebra/index.js"); var Data_Maybe = require("../Data.Maybe/index.js"); var Data_Monoid = require("../Data.Monoid/index.js"); var Data_Monoid_Disj = require("../Data.Monoid.Disj/index.js"); var Data_Newtype = require("../Data.Newtype/index.js"); var Data_Ordering = require("../Data.Ordering/index.js"); var Data_Semigroup = require("../Data.Semigroup/index.js"); var Data_Unit = require("../Data.Unit/index.js"); var Foldable = function (foldMap, foldl, foldr) { this.foldMap = foldMap; this.foldl = foldl; this.foldr = foldr; }; var foldr = function (dict) { return dict.foldr; }; var traverse_ = function (dictApplicative) { return function (dictFoldable) { return function (f) { return foldr(dictFoldable)((function () { var $155 = Control_Apply.applySecond(dictApplicative.Apply0()); return function ($156) { return $155(f($156)); }; })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit)); }; }; }; var for_ = function (dictApplicative) { return function (dictFoldable) { return Data_Function.flip(traverse_(dictApplicative)(dictFoldable)); }; }; var foldl = function (dict) { return dict.foldl; }; var intercalate = function (dictFoldable) { return function (dictMonoid) { return function (sep) { return function (xs) { var go = function (v) { return function (x) { if (v.init) { return { init: false, acc: x }; }; return { init: false, acc: Data_Semigroup.append(dictMonoid.Semigroup0())(v.acc)(Data_Semigroup.append(dictMonoid.Semigroup0())(sep)(x)) }; }; }; return (foldl(dictFoldable)(go)({ init: true, acc: Data_Monoid.mempty(dictMonoid) })(xs)).acc; }; }; }; }; var minimumBy = function (dictFoldable) { return function (cmp) { var min$prime = function (v) { return function (v1) { if (v instanceof Data_Maybe.Nothing) { return new Data_Maybe.Just(v1); }; if (v instanceof Data_Maybe.Just) { return new Data_Maybe.Just((function () { var $142 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.LT.value); if ($142) { return v.value0; }; return v1; })()); }; throw new Error("Failed pattern match at Data.Foldable (line 402, column 3 - line 402, column 27): " + [ v.constructor.name, v1.constructor.name ]); }; }; return foldl(dictFoldable)(min$prime)(Data_Maybe.Nothing.value); }; }; var foldableMaybe = new Foldable(function (dictMonoid) { return function (f) { return function (v) { if (v instanceof Data_Maybe.Nothing) { return Data_Monoid.mempty(dictMonoid); }; if (v instanceof Data_Maybe.Just) { return f(v.value0); }; throw new Error("Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): " + [ f.constructor.name, v.constructor.name ]); }; }; }, function (v) { return function (z) { return function (v1) { if (v1 instanceof Data_Maybe.Nothing) { return z; }; if (v1 instanceof Data_Maybe.Just) { return v(z)(v1.value0); }; 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 ]); }; }; }, function (v) { return function (z) { return function (v1) { if (v1 instanceof Data_Maybe.Nothing) { return z; }; if (v1 instanceof Data_Maybe.Just) { return v(v1.value0)(z); }; 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 ]); }; }; }); var foldMapDefaultR = function (dictFoldable) { return function (dictMonoid) { return function (f) { return foldr(dictFoldable)(function (x) { return function (acc) { return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc); }; })(Data_Monoid.mempty(dictMonoid)); }; }; }; var foldableArray = new Foldable(function (dictMonoid) { return foldMapDefaultR(foldableArray)(dictMonoid); }, $foreign.foldlArray, $foreign.foldrArray); var foldMap = function (dict) { return dict.foldMap; }; var any = function (dictFoldable) { return function (dictHeytingAlgebra) { 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))); }; }; var elem = function (dictFoldable) { return function (dictEq) { var $157 = any(dictFoldable)(Data_HeytingAlgebra.heytingAlgebraBoolean); var $158 = Data_Eq.eq(dictEq); return function ($159) { return $157($158($159)); }; }; }; module.exports = { Foldable: Foldable, foldr: foldr, foldl: foldl, foldMap: foldMap, foldMapDefaultR: foldMapDefaultR, traverse_: traverse_, for_: for_, intercalate: intercalate, any: any, elem: elem, minimumBy: minimumBy, foldableArray: foldableArray, foldableMaybe: foldableMaybe };