VimUnDo_-H5`?Gʄ%9Bnq =3d{%)XXXXPZ_VP5_VP 5_%%VP%5_ &&VP ' *  &5_ ((VP (! items in the `right` sequences.5_ ((VP 7 The reducing function for append (below). Not public.5_''VP 'function append1(left, right) {5_  ''VP''&var transform = require("./transform")5_ "''VP.'$var convert = require("./transform")5_ ''VP0('5_ ((VP4(var accumulate = require()5_ ((VP4(var accumulate = require("")5_  '((VPB ) (5_ ))VPE )var end = require()5_))VPE  )var end = require("")5_%vP_ )function map(source, f) { /**E Returns transformed version of given `source` where each item of it is mapped using `f`. ## Example/ var data = [{ name: "foo" }, { name: "bar" }]> var names = map(data, function(value) { return value.name })+ print(names) // =>  **/? return transform(source, function(next, value, accumulated) {& return next(f(value), accumulated) })}5_vPb module.exports = map5_vPp"5_vPs %$function append(left, right, rest) {5_vP%5_vP5_vP var slicer = require & %5_ vP 'var slicer = require()5_ vP  'var slicer = require("")5_vP'; return rest ? slice(arguments, 1).reduce(append1, left) :5_vP( '5_ vP( switch ()5_vP( switch (arguments.length)5_vP ( switch (arguments.length) {}5_vP!*  )5_  vP ",  "+5_! ! vP!#- !#,5_ "!"vP!#- return append1()5_!#""vP!#- return append()5_"$#"vP"$. "$-5_#%$ vP . case 1: return left!. return left5_$&%!vP!- case 2:return append(left, right) "- return append(left, right)5_%'&! vP #, default5_&('! vP "- default:5_')(!vP "- default: slicer.call()5_(*)!&vP "-& default: slicer.call(arguments, 1)5_)+*!%vP "-/ default: slicer.call(arguments, 1).reduce()5_*,+!+vP "-, default: slicer.call(arguments).reduce()5_+-,"vP!"5_,.-#vP"#A return rest ? slicer.call(arguments, 1).reduce(append1, left) :5_-/.#vP"#$ append1(left, right)5_.0/vP*$function concat(left, right, rest) {5_/10vP*%function concat(left, right, /rest) {5_021!vP"*(function concat(left, right /*, /rest) {5_132'vP%**function concat(left, right /*, ...rest) {5_243$vP2#%*exports.append = append5_354$vP5#$exports.append = concat5_465$vP6#$5_576$vP6#$5_687&vP8%&5_798&vP8%&5_8:9! vP "%2 default: slicer.call(arguments).reduce(append)5_9;:vP& * %5_:<;vP&Z Returns a lazy seq representing the concatenation of the elements in the supplied colls.5_;=<vP&U Returns a seq representing the concatenation of the elements in the supplied colls.5_<>=KvP&Z Returns a sequence representing the concatenation of the elements in the supplied colls.5_=?>vP' supplied colls.5_>@?vP'5_?B@vP ( supplied arguments.5_@CABvP"5_BDCvP"N Concatenate multiple `reducible`s, returning a single `reducible` containing5_CEDvP#9 all the items from the original `reducibles`, in order.5_DFEvP$& %5_EGFvP1('5_FHGvP4(& append([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])5_GIHvP7(& concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])5_HJI,vP9(, print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])5_IKJ-vP:(- print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ]))5_JLK4vPJ(4 print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => 5_KML6vPM(H print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => [ 1, 2, 3, 4, 5, 6 ]5_LNM=vPP(N print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => ,v,Pl $? when(reduce(left, next, initial), function reduceRight() {}5_798,v,Pl %> when(reduce(left, next, initial), function reduceRight() {5_8:9,v,Pl% }5_9;:'v'Pl%( return reduce(right, next, result)5_:<;'v'Pl5 return reduce(, function reduceRight(_, result) {5_;=<'v'Pl 5_<>='v'Pl })5_=?>'v'Pl# "5_>@?B'v'Pl #E return when(reduce(left, next, initial), function reduceRight() {5_?A@vGPl$#5_@BAvGPl$var when = require()5_ACBvGPlE$var when = require("")5_BDCvGP% $5_CEDvGP!F% console.log()5_DFEvGP%G% console.log(result)5_EGFvGP& %5_FHGvGP& var leftResult = reduce()5_GIH&vGP&' var leftResult = reduce(function())5_HJI(vGP&* var leftResult = reduce(function() {})5_IKJ%vGP'( var leftResult = reduce(function() {5_JLKvGP'( var leftResult = reduce(function() {5_KML+vGP'. var leftResult = reduce(left, function() {5_LNM8vGP '; var leftResult = reduce(left, function(next, initial) {5_MONvGP' })5_NPOvGP( '5_OQP1vGP&(; var leftResult = reduce(left, function(result, value) {5_PRQvGP*( var state = 5_QSR vGP,( }, next)5_RTSvGP.) (5_SUTvGP3) state = next()5_TVUvGP:* )5_UWV+vGPC*K return when(reduce(left, next, initial), function reduceRight(result) {5_VYWvGPJ*6 var leftResult = reduce(left, function(_, value) {5_WZXY v PS*: return when(leftResult, function reduceRight(result) {5_Y[Z3 v Pf+ *5_Z\[  v Ps+ return state 5_[]\ v Pv+ return isReduced(state 5_\^] v Px,+5_]_^ v P|,var isReduced = require()5_^`_ v P}H,var isReduced = require("")5__a` v P reduce, return isReduced(state)5_`ba v P- reduce()5_acb v P console.log("!!", result)5_bdc v PJ( return reduce(right, next, result)5_ced v P, +5_dfe v PK, console.log()5_egf3 v PL,6 return when(result, function reduceRight(result) {5_fhg v PN console.log(state)5_gih v P? // aggregated in the outer scope variable, since result won, +5_hji v PMO. // boxed. 5_ilj( v P.2 var result = reduce(left, function(_, value) {5_jmkl) v P.3 var result = reduce(left, function(re, value) {5_lnm v P. })5_mon  v P. state = next(state, value)5_npo v P.! result = next(state, value)5_oqp v P/ .5_prq v P/ return isReduced()5_qsr v P/ return isReduced(result)5_rts  v P0/5_sut v P0var reduced = require()5_tvu v PP0var reduced = require("")5_uwv' v P0) return isReduced(result) ? reduce()5_vxw) v P0* return isReduced(result) ? reduced()5_wyx0 v P00 return isReduced(result) ? reduced(result)5_xzy8 v P next08 return isReduced(result) ? reduced(result) : value5_y{z v P1 next()5_z|{ v P return state5_{}| v PQ var state = initial5_|~}- v P /0 return when(result, function reduceRight() {5_}~1 v P /4 return when(result, function reduceRight(rest) {5_~ v P /' return isReduced(state) ? state :5_& v P/( return isReduced(result) ? state :5_& v P/. return isReduced(result) ? state.value :5_% v P/- return isReduced(result) ? rest.value :5_& v P$R/' reduce(right, next, state)5_ v P50 /5_ v P=S0 console.log()5_  v PT0 next(result, value)5_ v PU console.log(result)5_  v P 0 /5_  v P 0function reduceFirst()5_ # v P 0#function reduceFirst(result, value)5_ % v P 0&function reduceFirst(result, value) {}5_  v P 1%function reduceFirst(result, value) {5_  v P 15_  v P 3  25_  v P 5 *  45_ 5 v P  boxed value then i 55 Reduces left branch of the concatenation such that 5_J v P1 7J boxed value this function will wrap it into `reduced` once again so that5_ v P?5_ v PC7 reducer of the right5_? v PZ7E reducer of the right branch that reductions is complete. Note that 5_G v P]7G reducer of the right branch that reductions is complete. Please that 5_  v Pj8 result of reduce5_ v Pk8 result of `reduce5_; v Pw8K reducer of the right branch that reductions is complete. Please note that5_K v Py8K reducer of the right branch that reductions is complete (Please note that5_ v P result of `reduce` i5_  v P8 is unboxed5_ v P8 is unboxed 5_ v P8 is un-boxed 5_> v PV8> is un-boxed so without double boxing it will appear unboxed.5_ v P: 95_  vP : /**I Reduces left branch of the concatenation. If consumer returns `reduced`L boxed value this function will wrap it into `reduced` once again to signalM reducer of the right branch that reductions is complete (result of `reduce`O is un-boxed so without double boxing right branch reducer function won't know result is already reduced. **/5_   vP $function reduceLeft(result, value) {5_   vP  5_   vP  result = next()5_   vP }5_   vP 5_  vP0 /5_vP6I Reduces left branch of the concatenation. If consumer returns `reduced`L boxed value this function will wrap it into `reduced` once again to signalM reducer of the right branch that reductions is complete (result of `reduce`O is un-boxed so without double boxing right branch reducer function won't know result is already reduced. **/5_&vP67 var result = reduce(left, function(result, value) {5_JvP6P boxed value this function will wrap it into `reduced` once again to signal5_vP7 signalKreducer of the right branch that reductions is complete (result of `reduce`7Q reducer of the right branch that reductions is complete (result of `reduce`5_MvP6X signal reducer of the right branch that reductions is complete (result of `reduce`5_vP7 of `reduce`Mis un-boxed so without double boxing right branch reducer function won't know7S is un-boxed so without double boxing right branch reducer function won't know5_LvP6_ of `reduce` is un-boxed so without double boxing right branch reducer function won't know5_vPW7 function won't knowresult is already reduced.7 result is already reduced.5_vPC // Accumulated `state` for the reductions of the left branch is5_vPD // aggregated in the outer scope variable, since result won't be5_vPX) // boxed. While we do want to box it.5_vP[35_-vP" 5  45_2vP6\!52 // If result is already reduced no point in 5_ !vPU 7 65_ vP^ 8function Concatination5_ vP_ 8function Concatination()5_ vP_ 8function Concatination() {}5_ vPa :  95_ vPe ;  :5_ vPj] ;function Concatination() {5_vPr<;5_vPz<reduce.define()5_'vP}<(reduce.define(Concatination, function())5_)vP}<+reduce.define(Concatination, function() {})5_vP=5_&vP>)reduce.define(Concatination, function() {5_&vP>6reduce.define(Concatination, function(Concatination) {5_3vP^>6reduce.define(Concatination, function(concatination) {5_,vP> /**C Returns sequences of items in the `left` sequence followed by the items in the `right` sequence. **/, return reducible(function(next, initial) {B var result = reduce(left, function reduceLeft(result, value) { /**M Reduces left branch of the concatenation. If consumer returns `reduced`I boxed value this function will wrap it into `reduced` once again toL signal reducer of the right branch that reductions is complete (resultK of `reduce` is un-boxed so without double boxing right branch reducer4 function won't know result is already reduced. **/" result = next(result, value)2 return isReduced(result) ? reduced(result) : result }, initial)6 return when(result, function reduceRight(result) {< // If result is already reduced just return it's value> // otherwise return reduction value of the right branch./ return isReduced(result) ? result.value :( reduce(right, next, result) }) })5_vP*' &5_--vP_@ ?5_2&v&PA var left = concatenation.left5_2&v&PA! var right = concatenation.right5_.2&v&P-.function append(left, right) {5_.2&v&P-. 5_.2&v&P-.}5_.2&v&P`-.5_82&v&P79=& case 2: return append(left, right)5_8*2&v&Pa79=7 case 2: return new Concatinationappend(left, right)5_;2&v&Pb;=>;==5_-2&v&P-/?-/>5_.2&v&P-/?function concatenation()5_.2&v&P-0?function concatenation() {}5_/2&v&P-/@function concatenation() {}.0@}5_.2&v&P-/?function concatenation() {}5_.%2&v&P -/?&function concatenation(left, right) {}5_.?2&v&P-/?Afunction concatenation(left, right) { return new Concatination()}5_.K2&v&Pc-/?Lfunction concatenation(left, right) { return new Concatination(left, right)}5_.K2&v&Pd.0?5_;82&v&Pe:<@9 default: return slicer.call(arguments).reduce(append)5_;2;2;>v>P8f:<@@ default: return slicer.call(arguments).reduce(concatination)5_  vPP @%function Concatination(left, right) {5_vPRg@Ereduce.define(Concatination, function(concatination, next, initial) {5_. . .vPV-/@Mfunction concatenation(left, right) { return new Concatination(left, right) }5_. . .vPX-/@Mfunction Concatenation(left, right) { return new Concatination(left, right) }5_.>. .vPZh-/@Mfunction concatenation(left, right) { return new Concatination(left, right) }5_:::#v#P`i9;@1 case 2: return new Concatination(left, right)5_;2;2;>v>Pc:<@@ default: return slicer.call(arguments).reduce(concatenation)5_;2;2;>v>Pe:<@@ default: return slicer.call(arguments).reduce(Concatenation)5_>;2;>v>Pi=?@concat.type = Concatination5_  vPr@ var left = concatination.left5_vPt@! var right = concatination.right5_&&2v2Pxj@Ereduce.define(Concatenation, function(concatination, next, initial) {5_%&2v2Pl@Ereduce.define(Concatenation, function(concatenation, next, initial) {5_&2v2P, return reducible(function(next, initial) {5_"vP#? B var result = reduce(left, function reduceLeft(result, value) { /**M Reduces left branch of the concatenation. If consumer returns `reduced`I boxed value this function will wrap it into `reduced` once again toL signal reducer of the right branch that reductions is complete (resultK of `reduce` is un-boxed so without double boxing right branch reducer4 function won't know result is already reduced. **/" result = next(result, value)2 return isReduced(result) ? reduced(result) : result }, initial)5_"vPm?@ var result = reduce(left, function reduceLeft(result, value) {5_$$)vP#*?6 return when(result, function reduceRight(result) {< // If result is already reduced just return it's value> // otherwise return reduction value of the right branch./ return isReduced(result) ? result.value :( reduce(right, next, result) })5_*$)vPn)* })5_($)vPo')>& reduce(right, next, result)5_$)vP var left = concatenation.left5_#(vPp! var right = concatenation.right5_"'vP= <5_#(vP= console.log()5_#(vPq= console.log("")5_#(vPr= console.log(">>>>>")5_,#(vP=t=Lreduce.define(Concatenation, function reduce(concatenation, next, initial) {5_#(vPEu% console.log(">>>>>", concatenation)5_***LvLPd)+<Mfunction concatenation(left, right) { return new Concatenation(left, right) }5_***LvLPe)*5_***LvLPev)*5_**LvLPh;:5_++LvLPiw;5_ ,,LvLPk =  <5_ ..LvLPp ? *  >5_ M00LvLP @M Concatenation is data structure representing concatenation of two sequences5_11LvLP5_ 00LvLP @ sequences.5_00LvLP @ sequences. Left one is stoe5_ 00LvLP @ sequences.5_ !00LvLP @M Concatenation is data structure representing concatenation of two reducible5_ 00LvLP @ sequences. 5_00LvLP @& sequences. Type implements `reduce` 5_.00LvLPx @. sequences. Type implements polymorp`reduce` 5_ &00LvLP@Mfunction concatenation(left, right) { return new Concatenation(left, right) }5_  (11LvLPA) return new Concatenation(left, right) }5_   22LvLPB5_   33LvLP5_   22LvLPC B5_  44LvLPzE * D5_ 55LvLPF * E5_!66LvLPF9 Implementation of `reduce` for Concatenation data types5_966LvLPF9 Implementation of `reduce` for concatenation data types5_966LvLPF9 Implementation of `reduce` for concatenation data type.5_C66LvLPFC Implementation of `reduce` for concatenation data type. It reduce5_;66LvLP"F; Implementation of `reduce` for concatenation data type. R5_C66LvLP)FC Implementation of `reduce` for concatenation data type. It reduce5_66LvLP-F= Implementation of `reduce` for concatenation data type. It @eturns sequences of items in the `left` sequence followed by theFC Returns sequences of items in the `left` sequence followed by the5_O55LvLP0E~ Implementation of `reduce` for concatenation data type. It returns sequences of items in the `left` sequence followed by the5_66LvLP1{F1 of items in the `left` sequence followed by theitems in the `right` sequence. F items in the `right` sequence.5_:;55LvLPV9;EJ print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => 5_:C55LvLPY}9;ED print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => < 1 2 3 4 5 6 />5_55LvLP}UE "use strict";&var reducible = require("./reducible") var reduce = require("./reduce")'var isReduced = require("./is-reduced")"var reduced = require("./reduced")#var when = require("eventual/when")"var slicer = Array.prototype.slice%function Concatenation(left, right) { /**H Concatenation is data type representing concatenation of two reducible sequences. **/ this.left = left this.right = right}%function concatenation(left, right) { /** Concatenation type factory. **/' return new Concatenation(left, right)}Rreduce.define(Concatenation, function reduceConcat(concatenation, next, initial) { /**N Implementation of `reduce` for concatenation data type. It returns sequencesP of items in the `left` sequence followed by the items in the `right` sequence. **/N var result = reduce(concatenation.left, function reduceLeft(result, value) { /**K Reduces left branch of the concatenation. If consumer returns `reduced`G boxed value this function will wrap it into `reduced` once again toJ signal reducer of the right branch that reductions is complete (resultI of `reduce` is un-boxed so without double boxing right branch reducer2 function won't know result is already reduced. **/ result = next(result, value)0 return isReduced(result) ? reduced(result) : result }, initial)4 return when(result, function reduceRight(result) {: // If result is already reduced just return it's value< // otherwise return reduction value of the right branch.- return isReduced(result) ? result.value :4 reduce(concatenation.right, next, result) })}),function concat(left, right /*, ...rest*/) { /**J Returns a sequence representing the concatenation of the elements in the) supplied arguments, in the given order.C print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // => < 1 2 3 4 5 6 > **/ switch (arguments.length) { case 1: return left1 case 2: return new Concatenation(left, right)@ default: return slicer.call(arguments).reduce(concatenation) }}concat.type = Concatenationmodule.exports = concat5_ 55LvLP}h $5_ 66LvLP}k%"var convert = require("./convert")5_"66LvLP}o~%$var reducible = require("./convert")5_ 66LvLP}s %5_  66LvLP}x % reducible()5_! 66LvLP}| % reducible(function())5_ "! 66LvLP}| % reducible(function() {})5_!#" 77LvLP} & reducible(function() {5_"$# !77LvLP} '  &5_#%$88LvLP} ' accumulate()5_$&%88LvLP} ' accumulate(left, function())5_%'&!88LvLP} '# accumulate(left, function() {})5_&('99LvLP} (! accumulate(left, function() {5_')(*99LvLP}) (5_(*)::LvLP}*)5_)+*;;LvLP}*var end = require()5_*,+;;LvLP}*var end = require("")5_+-, ;;LvLP}* return 5_,.-(;;LvLP}*) return value === end ? accumulate()5_-/.<;;LvLP} isError*< return value === end ? accumulate(right, next, result)5_.0/<<<LvLP}+< return value === end ? accumulate(right, next, result)5_/10<<LvLP}+ isError()5_021<<LvLP}+ next()5_132<<LvLP}6 return convert(null, function(self, next, initial) {5_243;;LvLP}. accumulate(left, function(value, result) {5_354::LvLP}? return value === null ? accumulate(right, next, result) :5_46599LvLP}1 next(value, result)5_57688LvLP} }, initial)5_68777LvLP} })5_7;866LvLP}% })5_8<9;66LvLP~ & %5_;=<77LvLP~ & console.log()5_<>=77LvLP~$& console.log(value, result)5_=?>77LvLP~3 &% reducible(function(next, initial) {5_>@?77LvLP~6( console.log(">>>>", value, result)5_?A@66LvLP~N & %5_@BA 77LvLP~U &function Concatination()5_ACB 77LvLP~U &function Concatination() {}5_BDC  vP~^ 'function Concatination() {5_CED  vP~_ 'function Concatenation() {5_DFE  vP~p %function Concatenation(left, right) {5_EGF  vP~p }5_FHGPB %, return reducible(function(next, initial) {5_GIHPB%. accumulate(left, function(value, result) {5_HJIPB%(var accumulate = require("./accumulate")5_IKJPB%&var reducible = require("./reducible")5_JLK"PB%$var reduce = require("./accumulate")5_KMLPB%#var reduce = require("./reducible")5_LNMPB%var end = require("./end")5_MONPB%9 accumulate(left, function reduceLeft(value, result) {5_NPO'PB%> return value === end ? accumulate(right, next, result) :5_OQPPL& %5_PRQPL& console.log()5_QSRPL& console.log("")5_RTSPM & console.log("<<<")5_SUTPO% console.log("<<<", next, initial)5_TVU)vPU\%+var reduce = require("reducible/reducible")5_UWV&vPU]%(var reduce = require("reducible/reduec")5_VXWvPY% "use strict";.var reducible = require("reducible/reducible")(var reduce = require("reducible/reduce")"var end = require("reducible/end")"var slicer = Array.prototype.slicefunction append(left, right) { /**C Returns sequences of items in the `left` sequence followed by the items in the `right` sequence. **/@ return reducible(function reduceConcatination(next, initial) {5 reduce(left, function reduceLeft(value, result) {: return value === end ? reduce(right, next, result) : next(value, result) }, initial) })},function concat(left, right /*, ...rest*/) { /**J Returns a sequence representing the concatenation of the elements in the) supplied arguments, in the given order.J print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // =>  **/ switch (arguments.length) { case 1: return left& case 2: return append(left, right)9 default: return slicer.call(arguments).reduce(append) }}module.exports = concat5_WXvPZ% "use strict";&var reducible = require("./reducible")(var accumulate = require("./accumulate")var end = require("./end")"var slicer = Array.prototype.slicefunction append(left, right) { /**C Returns sequences of items in the `left` sequence followed by the items in the `right` sequence. **/, return reducible(function(next, initial) {. accumulate(left, function(value, result) {> return value === end ? accumulate(right, next, result) : next(value, result) }, initial) })},function concat(left, right /*, ...rest*/) { /**J Returns a sequence representing the concatenation of the elements in the) supplied arguments, in the given order.J print(concat([ 1 ], [ 2, 3 ], [ 4, 5, 6 ])) // =>  **/ switch (arguments.length) { case 1: return left& case 2: return append(left, right)9 default: return slicer.call(arguments).reduce(append) }}module.exports = concat5_8:;966LvLP}% next(result)5_9:66LvLP}% next(result, value)5_,&2v2Pk@Rreduce.define(Concatenation, function reduceConcat(concatenation, next, initial) {5_-vPZ 4) return isReduced(result) ? result :5_jlk v P., reduce(stateright, next, state)5_WYX vPL*, var = reduce(left, function(_, value) {5_gh %vPMu$$var reducible = require("./convert")5_"%vPM{$&var reducible = require("./reducible")5_ %vPM $2 return reducible(function(self, next, initial) {5_ "%vPM? $, return reducible(function(next, initial) {5_%vPM@ $5 return accumulate(left, function(value, result) {5_gih?P6$? return value === null ? accumulate(right, next, result) : isEror isEror()5_hjiP6% isError()5_ikjP6#%&var isError = require()5_jlkP6'&var isError = require("")5_kmlP6'$&#var isError = require("./is-error")5_lnmP6.& isError(value)5_monP6/& isError(value) ? 5_npoP65&'var reduced = require()5_oqpP69'var reduced = require("")5_prqP6:'"var reduced = require("./reduced")5_qsrP6@'' isError(value) ? reduced()5_rts&P6D'- isError(value) ? reduced(result)5_sut-P6F%'/ isError(value) ? reduced(result) :5_tvu-P6_' ( console.log()5_uwvP6b&( console.log(value)5_vxwP6'( console.log('>>>>', value)5_wyxP7 (+ console.log('>>>>', value, isError())5_xzy)P7((0 console.log('>>>>', value, isError(value))5_y{z!P7 ( )5_z|{ P7 5_{}| P7 ) * *var 5_|} P7< 5_}~%vPI=5_}~&P7(' isError(value) ? result) :5_~%P7)(% isError(value) ? value :5_P8*5_P;'5_P;'5_P;'5_ P;/5_P;05_P;05_P;05_P;1  ! return reducible()5_P;5! return reducible(function())5_P;6!! return reducible(function() {})5_P;7! return reducible(function() { })5_P;9", return reducible(function(next, initial) {5_'P;T"#var reducible = require()5_P;Y#var reducible = require("")5_P;Y#&var reducible = require("./reducible")5_%vP;`#$&var reducible = require("./reducible")5_$%vP;a+$#var reducible = require("./reduce")5_ %vP;p$ % reduce()5_ %vP;s%! reduce(right, next, reduce())5_%vP;z%4 reduce(right, next, reduce(left, next, initial))5_ %vP;,% var reduce = require("./reduce")5_%vP;-%; return reduce(right, next, reduce(left, next, initial))5_%vP<` 5_%vP<25_%vP@$ % console.log()5_%vP@% console.log("")5_%vP@% console.log("!!!!!!!!!")5_%vP@3%) console.log("!!!!!!!!!", e, result)5_%vPA 4%) console.log("!!!!!!!!!", _, result)5_%vPD%F return reduce([ reduce(left, next, initial), function(_, result) {5_/%vPD5%H return reduce([ reduce(left, next, initial) ], function(_, result) {5_0%vPE+%F return reduce([ reduce(left, next, initial), function(_, result) {5_%vPE.%D return reduce(reduce(left, next, initial), function(_, result) {5_%vPE/6% }, null)5_%vPF5_%vPF"$F return reduce([ reduce(left, next, initial), function(_, result) {5_/%vPF%$H return reduce([ reduce(left, next, initial) ], function(_, result) {5_ %vPF'7$ })5_%vPF5$G return reduce([reduce(left, next, initial) ], function(_, result) {5_/%vPF88$F return reduce([reduce(left, next, initial)], function(_, result) {5_+%vPF:$ %) // Left side may reduce to undefined 5_%vPFW5_%vPFe$R return reduce(right, next, reduce(left, next, initial)], function(_, result) {5_R%vPFp$: return reduce(right, next, reduce(left, next, initial)5_%vPFv5_%vPFw5_:%vPFy"; return reduce(right, next, reduce(left, next, initial))5_ !v!PF"@ return when(reduce(right, next, reduce(left, next, initial))5_!v!PF". return when(, reduce(left, next, initial))5_!v!PF", return when(reduce(left, next, initial))5_,!v!PF"? return when(reduce(left, next, initial), reduce(right, next5_-!v!PF"9 return when(reduce(left, next, initial), function() { reduce(right, next5_!v!PF# reduce(right, next, 5_6!v!PF#? return when(reduce(left, next, initial), function(result) {5_!v!PF# reduce(right, next, result5_ !v!PF#! reduce(right, next, result)5_!v!PF#( return reduce(right, next, result)5_ !v!PF9# $ })5_!v!PGQ $ %var Concatinated()5_ !v!PGX %var Concatinated() {}5_   vPGX %var Concatinated() {}5_   vPGy &var Concatenated() {5_   vPG} &var Concatenation() {5_   vPG & var Concatenation(left, right) {5_   vPG &  ' this.left = left this.right = right5_   vPG (%function Concatenation(left, right) {5_   vPG (5_   vPG 5_   vPG (5_   vPG ) *accumulate.define()5_   vPG *,accumulate.define(Concatenation, function())5_ *  vPG *-accumulate.define(Concatenation, function( ))5_ ,  vPG *+accumulate.define(Concatenation, function()5_ +  vPG *.accumulate.define(Concatenation, function() {}5_ -  vPG *-accumulate.define(Concatenation, function() {}5_  vPG +})5_ *  vPG +;accumulate.define(Concatenation, function(Concatenation ) {5_ *  vPG +;accumulate.define(Concatenation, function(concatenation ) {5_ 8  vPG +Iaccumulate.define(Concatenation, function(concatenation, next, initial) {5_  vPG+,var accumulate = require()5_  vPG,var accumulate = require("")5_  vPG,(var accumulate = require("./accumulate")5_%  vPG, - accumulate()5_  vPG 5_  vPG 5_  vPG: 5_   vPH< * +reduce.define()5_  vPHI +(reduce.define(Concatenation, function())5_'  vPHO ++reduce.define(Concatenation, function() {})5_)  vPHO +)reduce.define(Concatenation, function() {})5_&  vPHS ,Creduce.define(Concatenation, function(concatenation, left, right) {5_?  vPHm, - reduce()5_   vPHq- reduce(right, concatenation, )5_  vPH- reduce(concatenation, )5_  vPH- reduce(concatenation.left, )5_@  vPH -Ereduce.define(Concatenation, function(concatenation, next, initial) {5_  vPH-+ reduce(concatenation.left, next, initial)5_  vPH-0 when(reduce(concatenation.left, next, initial)5_0  vPH-< when(reduce(concatenation.left, next, initial), function()5_<  vPH-? when(reduce(concatenation.left, next, initial), function() {}5_>  vPH-> when(reduce(concatenation.left, next, initial), function() { }5_  vPH. })5_  vPH.E return when(reduce(concatenation.left, next, initial), function() {5_   vPI 5_    vPI 5_    vPI 5_     vPI 5_     vPI 5_     vPI 5_    vPI 5_    vPI; 5_  vPH. / 5_ P;(5_P;(5_P;(5_P;)5_P;*  ! return redu5_\^e]P2m$ % if ()5_]_^ P2o% if (value === null)5_^`_P2s% if (value === null)5__a`P2t% if (value === null) {}5_`baP2y% if (value === null) { }5_acbP2z&5_bdcP2|' ( accumulate()5_cdP2( accumulate(right, nexn)5_Z\[ P- $1 return convert, function(self, next, initial) {5_@BAvP(# supplied arguments, given order.5