// 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 Control_Category = require("../Control.Category/index.js"); var Data_Foldable = require("../Data.Foldable/index.js"); var Data_Functor = require("../Data.Functor/index.js"); var Traversable = function (Foldable1, Functor0, sequence, traverse) { this.Foldable1 = Foldable1; this.Functor0 = Functor0; this.sequence = sequence; this.traverse = traverse; }; var traverse = function (dict) { return dict.traverse; }; var sequenceDefault = function (dictTraversable) { return function (dictApplicative) { return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn)); }; }; var traversableArray = new Traversable(function ($dollar__unused) { return Data_Foldable.foldableArray; }, function ($dollar__unused) { return Data_Functor.functorArray; }, function (dictApplicative) { return sequenceDefault(traversableArray)(dictApplicative); }, function (dictApplicative) { return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative)); }); var sequence = function (dict) { return dict.sequence; }; module.exports = { Traversable: Traversable, traverse: traverse, sequence: sequence, sequenceDefault: sequenceDefault, traversableArray: traversableArray };