VimUnDoRԬN$]x8u,~P%~h 4e+ee*Pu@+_P,5_1 P,02: next(end(), result)5_6 P-68; 68:5_7P-!68; if ()5_7 P-(68; if (value)5_7P--68; if (value === end)5_7P-468; if (value === end) deliver()5_ 5 P-846; var result = defer()5_ 5P-;46; var deferred = defer()5_ :P-@9;; return result5_ 7%P-I68;( if (value === end) deliver(result, )5_ 6-P-K57;0 process(source, function(value, accumulated) {5_  7(P-N68;) if (value === end) deliver(promise, )5_ 7-P-V79< 79;5_7P-j68</ if (value === end) deliver(promise, result)5_7P-m68<2 return value === end) deliver(promise, result)5_73P-p79 : f69<3 return value === end ? deliver(promise, result)5_8P-w79= : f()5_9P-|89 5_9P-}89A return value && value.isBoxed ? value : f(accumulated, value)5_;P-<> function map;;5_= P-<function map()5_=P-<>function map(source, f)5_=P-<function map(source, f) {}5_=P-=?? =?>5_>P-=?? return process.implement()5_>%P-=??& return process.implement(function())5_>'P-=@?) return process.implement(function() {})5_>P-=?@' return process.implement(function() {5_>(P-=?@+ return process.implement({}, function() {5_ >.P-=?@1 return process.implement({}, function(source) {5_! >/P-=?@3 return process.implement({}, function(source, ) {5_ "!>.P-=?@3 return process.implement({}, function(source, ) {5_!#">.P-=?@1 return process.implement({}, function(self, ) {5_"$#>6P-=?@9 return process.implement({}, function(self, f, state) {5_#%$>/P-=?@; return process.implement({}, function(self, f, initial) {5_$&%>1P->@A >@@5_%'&;P.<>function reducible;>B;=A5_&('=P.<>Cfunction reducible()5_')(=P.<?Cfunction reducible() {}5_(*)=P.<>Dfunction reducible() {5_)+*=P.#=?E =?D5_*,+>P.0=?E process.implement()5_+-,>P.1=?E process.implement([])5_,.->P.3=?E process.implement()5_-/.>P.3=?E process.implement({})5_.0/>!P.8=?E# process.implement({}, function())5_/10>5P.<=?E6 process.implement({}, function(self, next, initial))5_021>7P.==@E9 process.implement({}, function(self, next, initial) {})5_132>P.F>@F5_243?P.X>@G5_354? P.t>@G process()5_465?P.y>@G process(source, function())5_576? P.y>AG" process(source, function() {})5_687@P.}?AH })5_7?8?P.>@H process(source, function() {5_8@9??)P.?AI ?AH5_?A@@P.?AI return value && value.i5_@BA@#P.?BI# return value === end ? result5_ACB@ P/?AJ% return value === end ? result :5_BDC@'P/?AJ' result = value === end ? result :5_CED@*P/+?AJ+ result = value === end ? result : f()5_DFE@.P/1?AJ1 result = value === end ? result : f(next, )5_EGF@1P/4?AJ2 result = value === end ? result : f(value, )5_FHGA P/7@A 5_GIH@ P/<?AI8 result = value === end ? result : f(value, result)5_HJI@$P/C?AI7 value = value === end ? result : f(value, result)5_IKJ@"P/G@BJ @BI5_JLKA P/N@BJ next()5_KMLAP/R@BJ next(value, result)5_LNMAP/a@BJ" result = next(value, result)5_MON@@@5v5P/k?AJ6 value = value === end ? value : f(value, result)5_NPO@@@5v5P/l?@ value = 5_OQP@@@5v5P/m?AI next(value, result)5_PRQ@2@@5v5P/?AI< next(value === end ? value : f(value, result), result)5_QSR@@@5v5P/?AI4 next(value === end ? value : f(value), result)5_RTS=@@5v5P/<>Ifunction reducible(source, f) {5_SUTF== v P/EGI> return process.implement({}, function(self, next, initial) {5_TVUF6== v P/EGI6 return processor({}, function(self, next, initial) {5_UWVF== v P/EGI return processor()5_VXWG== v P/FG if 5_WZXG== v P/FG })5_X[YZ=== v P/<>Gfunction processor(source, f) {5_Z\[3PK35g35f5_[]\4PK35gfunction channel()5_\^]4PK36gfunction channel() {}5_]_^4PK35hfunction channel() {5_^`_5PK45}5__a`4PK46h46g5_`ba5PK57h5_acb>PK>@j>@i5_bdcLPKLNkLNj5_cedQPLQSlQSk5_dfeMPLLNlexports.reduce = reduce5_egfMPL LNlexports.processor = reduce5_fhgRPLQSlexports.filter5_gihVPLVXmVXl5_hjiZPLZ\nZ\m5_ikjePLIegoegn5_jlkfPLLegofunction tranform()5_kmlfPLMehofunction tranform() {}5_lnmfPLMfhq fhp5_mongPLRfhq return function stream()5_npogPLTfhq return function stream(next)5_oqpg PLTfiq! return function stream(next) {}5_prqgPLYgir5_qsrfPL\egsfunction tranform() {5_rtshPL^gis5_suth PLagis source()5_tvuhPLcgis source(function|())5_uwvhPLdgis source(function())5_vxwh"PLhgis# source(function(value, result))5_wyxh$PLhgjs& source(function(value, result) {})5_xzyhPLogit$ source(function(value, result) {5_y{zhPLuhju hjt5_z|{i PLwhju if ()5_{}|i!PLhju! if (value && value.isBoxed)5_|~}fPLegufunction tranform(source) {5_}~i'PLhju( if (value && value.isBoxed) next()5_~i3PLikv iku5_j PLikv else f()5_jPLikv else f(next)5_mPLnp function mapmpwmov5_o PLnpxfunction map()5_oPLnpxfunction map()5_oPLnqxfunction map(source, f) {}5_oPLoqz oqy5_pPLoqz tranform()5_pPLoqz return tranform()5_p$PLoqz% return tranform(source, function())5_p&PLorz( return tranform(source, function() {})5_p#PLoq{& return tranform(source, function() {5_p5PLpr| pr{5_q PLpr| next()5_q PLpr| next(f())5_qPLpr| next(f(value))5_@PM@B}@B|5_APM@B}function tranform()5_APM"@B}function tranform(source, f)5_APM"@C}function tranform(source, f) {}5_APM#AC AC~5_BPM2AC return process.implement()5_BPM4AC return process.implement({})5_B)PM7AC* return process.implement({}, function())5_B+PM8AD- return process.implement({}, function() {})5_B(PM=AC+ return process.implement({}, function() {5_B:PMKBD BD5_C PMQBD process()5_CPMUBD process(source, function())5_C+PMWBD, process(source, function(value, result))5_C-PMYBE/ process(source, function(value, result) {})5_CPM[CE CE5_DPMCE 5_DPMCE return value && va5_DPMCE return value && va5_D+PMCE, return value && value.isBoxed ? next()5_D9PMDF' : fCF9 return value && value.isBoxed ? next(value, result)5_E(PMDF) : f()5_HPN/HJ5_PN=var each = Method5_PNO each.define5_ PN each.define()5_PNeach.define(Array, function())5_PN!each.define(Array, function() {})5_PNeach.define(Array, function() {5_PNeach.define(Array, function() {5_PN 5_PN 5_PN#each.define(Array, function(next) {5_ PN var count5_ PN while ()5_PN 5_ PO next()5_PO next(array[])5_PO next(array[index++])5_PO if (next(array[index++])5_$PO $ if (end === next(array[index++])5_%PO*% if (end === next(array[index++]))5_PO35_POC function 5_ POD function 5_ POEfunction map()5_POL function map(source, function())5_!POM#function map(source, function() {})5_!POS!function map(source, function() {5_POVfunction map(source, f) {}5_POXfunction map(source, f) {5_POYfunction map(source, f) 5_POYfunction map(source, f) {}5_POZ})5_PO[ 5_POc if ()5_POj each()5_POsfunction sequence5_POzfunction sequence()5_PO{function sequence() {}5_PO| 5_PO return each.implement()5_PO return each.implement({})5_&PO' return each.implement({}, function())5_(PO* return each.implement({}, function() {})5_POfunction sequence() {5_%PO( return each.implement({}, function() {5_/PO 5_PO f()5_0PO3 return each.implement({}, function(self, value) {5_ PO f(value)5_PO each(source)5_PO each(source, function()5_PO each(source, function() {}5_PO }5_PO 5_PO each(source, function() {5_PO each(source, function(value) {5_ PO# return sequence(function(value) {5_PO 5_PO source5_PP each(source5_PP each(source, function()5_ PP each(source, function(value)5_"PP # each(source, function(value) {}5_PP  }5_PP  5_ PP next()5_ PP next(f())5_PP3 f(next)5_PP6 next(f(value))5_PPq5_PPt function 5_ PPt function 5_PPvfunction reduce()5_PPxfunction reduce(source, f)5_%PP&function reduce(source, f, initial) {}5_PP 5_ PP return sequence5_PP%function reduce(source, f, initial) {5_ PP$function forld(source, f, initial) {5_ PP sequence5_ PP var state = initial5_ PP sequence()5_PP sequence(source, function())5_PP! sequence(source, function() {})5_PP sequence(source, function() {5_ PP# sequence(source, function(next) {5_PP each(source, function(next) {5_PP 5_PP result = f()5_PP result = f(result, value)5_ PP 5_PP return re5_PQXfunction channel5_PQ]function channel()5_PQ^function channel() {}5_PQa 5_ PQf sequence()5_PQg sequence(function())5_ PQh sequence(function() {})5_  PQr sequence(function() {5_   PQxfunction channel() {5_   PQyfunction channel`() {5_   PQfunction channel() {5_  PQ sequence(function(next) {5_ PQ })5_PQ sequence(f5_PQ return sequence(f5_PQfunction channel(f) {5_PR#function binoid5_PRMfunction binoid()5_PRSfunction binoid(left, right) {}5_PRU 5_ PR[ return {}5_PRa return { left, right }5_PRh return { left: left, right }5_"PRp5_PRr5_PRsfunction singular5_PRfunction singular()5_PRfunction singular(value)5_PRfunction singular(value) {}5_ PR5_! PRfunction empty()5_ "!PRfunction empty() {}5_!$"PR5_"%#$PS"function singular(value) {5_$&% vPSfunction binoid(left, right) {5_%'&  vPS function Stereoid(left, right) {5_&(' vPS5_')( vPS function 5_(*)  vPS function 5_)+* vPSfunction monoid()5_*,+ vPSfunction monoid(value)5_+-, vPSfunction monoid(value) {}5_,.- vPSfunction empty() {5_-/. vPS5_.0/ vPSfunction monogam(value) {5_/10 vPS}5_021  vPSfunction nonoid() {5_132  vPS 5_243  vPS 5_354  vPS return []5_465% vPS% return { left: left, right: right }5_576  vPS return []5_687 vPSfunction reduce5_798 vPSfunction reduce()5_8:9 vPSfunction reduce(stream)5_9;: vPSfunction reduce(stream) {}5_:<; vPS 5_;=< vPS if ()5_<>= vPSfunction isStereo5_=?> vPSfunction isStereo()5_>@? vPTfunction isStereo() {}5_?A@ vPTfunction isStereo() { }5_@BA vPTfunction isStereo(value) { }5_ACB vPT5_BDC vPTfunction isMono()5_CED vPTfunction isMono(value) {}5_DFE vPT5_EGF vPT"function isNone()5_FHG vPT$function isNone(value)5_GIH vPT%function isNone(value) {}5_HJI  vPT- if (strict)5_IKJ vPT3function reduce(stream) {5_JLK  vPT4 isNone()5_KML vPT7function reduce(source) {5_LNM  vPT9#function reduce(source, f, state) {5_MON vPT> isNone(source)5_NPO vPT? return isNone(source)5_OQP# vPTK : isMono# return isNone(source) ? initial()5_PRQ  vPTd : isMono()5_QSR vPTf : isMono(source)5_RTS vPTi : isMono(source) ? f()5_SUT  vPTy" : isMono(source) ? f(source[])5_TVU" vPTz# : isMono(source) ? f(source[0])5_UWV, vPT, : isMono(source) ? f(source[0], initial)5_VXW. vPT. : isMono(source) ? f(source[0], initial) :5_WYX! vPT! return isNone(source) ? initial5_XZY vPT, : isMono(source) ? f(source[0], initial)5_Y[Z/ vPT reduce/ isMono(source) ? f(source[0], initial)5_Z\[! vPT" reduce()5_[]\( vPT* reduce(source[])5_\^]* vPT+ reduce(source[0])5_]_^ vPT4 reduce(source[0], initial)5_^`_@ vPTI reduce(source[1], f, reduce(source[0], initial)5__a`L vPTL reduce(source[1], f, reduce(source[0], f, initial)5_`bavPT:var each = Method()*each.define(Array, function(array, next) { var count = array.length var index = 0 while (index < count)+ if (end === next(array[index++])) break})function sequence(f) {2 return each.implement({}, function(self, next) { return f(next) })}function map(source, f) {" return sequence(function(next) {" each(source, function(value) { return next(f(value)) }) })}#function fold(source, f, initial) { var result = initial each(source, function(value) { result = f(result, value) return result })}function generator(f) { return sequence(f)} function stereoid(left, right) { return [left, right]}6function isStereo(value) { return value.length === 2 }function monoid(value) { return [value]}4function isMono(value) { return value.length === 1 }function noneoid() { return []}4function isNone(value) { return value.length === 0 }%function reduce(source, f, initial) {# return isNone(source) ? initial :1 isMono(source) ? f(source[0], initial) :M reduce(source[1], f, reduce(source[0], f, initial))}5_acbvPT5_bdcfvPTef function stream(next) { var state = next(1, 0) state = next(2, state) state = next(3, state) next(end, state)}function tranform(source, f) { return function stream(next) {, source(function process(value, result) {5 if (value && value.isBoxed) next(value, result)! else f(next, value, result) }) }}function map(source, f) {9 return tranform(source, function(next, value, result) { next(f(value), result) })}function map(source, f) { return function stream(next) {$ source(function(value, result) {* if (value === end) next(end, result). if (value === error) next(error, result)! else next(f(value), result) }) }}5_cedeffvPTde5_dfeIeevPU#HI5_egfIddvPU#HIfunction processor(tranform) {5_fhgIccvPU#HI) return function processing(source, f) {5_gihIbbvPU$HI9 process.implement({}, function(self, next, initial) {5_hjiIaavPU$HI/ process(source, function(value, result) {5_ikjI``vPU$HI2 return value === end ? next(value, result)5_jlkI__vPU$HI< : tranform(f, function(value) {5_kmlI!^^vPU$HI4 next(value, result)5_lnmI]]vPU$HI( }, value)5_monI\\vPU%HI }, initial)5_npoI[[vPU%HI })5_oqpIZZvPU%HI }5_prqIYYvPU%HI}5_qsrIXXvPU%HIexports.processor = processor5_rtsIWWvPU0IKWIKV5_sutJXXvPU7IKWfunction filter()5_tvuJXXvPU;IKWfunction filter(source, f)5_uwvJXXvPU;ILWfunction filter(source, f) {}5_vxwJYYvPU<JLY JLX5_wyxKZZvPUCJLY tranform5_xzyKZZvPUEJLY return tranform5_y{zKZZvPUEJLY return tranform()5_z|{K$ZZvPUHJLY% return tranform(source, function())5_{}|K&ZZvPUHJMY( return tranform(source, function() {})5_|~}K#[[vPUMJLZ& return tranform(source, function() {5_}~K5[[vPUUKM[ KMZ5_~L \\vPU]KM[ return f()5_L\\vPU_KM[ return f(value)5_L\\vPUdKM[ return f(value) ? 5_L\\vPUeKM[ return f(value) ? next()5_L)\\vPUiKM[) return f(value) ? next(value, result)5_O\\vPUmNO9var filter = processor(function(f, next, value, result) {5_O[[vPUnNO return f(value) ? next(value)5_OZZvPUrNO})5_OYYvPU}NO!exports.filter = processor.filter5_OXXvPUOQXOQW5_P YYvPUOQXfunction map()5_PYYvPUOQXfunction map(source, f)5_PYYvPUORXfunction map(source, f) {}5_PZZvPUPRZ PRY5_Q[[vPUPRZ return tranform()5_Q#[[vPUPRZ% return tranform(source, function())5_Q7[[vPUPRZ8 return tranform(source, function(next, value, result))5_Q9[[vPUPSZ; return tranform(source, function(next, value, result) {})5_Q\\vPUQS\ QS[5_R]]vPUQS\ return next()5_R]]vPUQS\ return next(f())5_R]]vPUQS\ return next(f(value))5_U]]vPUTU6var map = processor(function(f, next, value, result) {5_U\\vPUTU return next(f(value), result)5_U[[vPUTU})5_UZZvPUTUexports.map = map5_UYYvPUUWYUWX5_VZZvPUUWYfunction take()5_VZZvPUUWYfunction take(source, n)5_VZZvPUUXYfunction take(source, n) {}5_X[[vPUWX7var pick = processor(function(f, next, value, result) {5_XZZvPUWX})5_XYYvPUWXexports.pick = pick5_VXXvPUVXX VXW5_WYYvPUVXX return tranform()5_W#YYvPUVXX% return tranform(source, function())5_W7YYvPUVXX8 return tranform(source, function(next, value, result))5_W9YYvPUVYX; return tranform(source, function(next, value, result) {})5_WZZvPUWYZ WYY5_X[[vPUWYZ 5_X[[vPVWYZ return n-- ? 5_X[[vPVWYZ return n-- ? next()5_X$[[vPVWYZ$ return n-- ? next(value, result)5_V [[vPVMUWZfunction take(source, n) {5_V[[vPVOUWZfunction takeWhile(source, n) {5_X[[vPV[WYZ* return n-- ? next(value, result) : end5_Z[[vPVh[] function takeZZ5_\]]vPVm[function take()5_\]]vPVq[]function take(source, n)5_\]]vPVq[^function take(source, n) {}5_\^^vPVs\^^ \^]5_H__vPVHJ_HJ^5_I``vPVHJ_exports.reduce = reduce5_O``vPVOQ`OQ_5_VaavPVVXaVX`5_XbbvPVWX5_XaavPVWX'function takeWhile(source, predicate) {5_X``vPVWX9 return tranform(source, function(next, value, result) {5_X__vPVWX2 return predicate() ? next(value, result) : end5_X^^vPVWX })5_X]]vPVWX}5_X\\vPVWX5_X[[vPVWXfunction take(source, n) {5_XZZvPVWX function 5_XYYvPVWX}5_WXXvPVWW5_YZZvPVX function 5_Y ZZvPVXZ function 5_YZZvPVXZfunction generator()5_YZZvPVXfunction generator() {}5_Y[[vPVY[[ Y[Z5_Z\\vPWY[[ return process.implement()5_Z\\vPWY[[ return process.implement({})5_Z\\vPWY[[ return process.implement({}'')5_Z)\\vPWY[[* return process.implement({}, function())5_Z+\\vPWY\[- return process.implement({}, function() {})5_Y]]vPWXZ\function generator() {5_Z]]vPWZ\\5_[^^vPW Z\]5_[^^vPW'Z\] f()5_[^^vPW)Z\] f(function())5_[^^vPW)Z]] f(function() {})5_Z __vPW+Z\_ Z\^5_[``vPW3Z\_ var state = state5_[``vPW8Y[_+ return process.implement({}, function() {Z\_ var state = null5_Z*__vPW:Z\_ Z\^5_\``vPW@[]_ f(function() {5_\``vPWA\^` \^_5_[ aavPWYZ\` var state5_[aavPW[Z\` var state []5_[aavPW]Z\` var state []5_]aavPW`\^` state = value5_[aavPWdZ\` var state = []5_[aavPWiZ\` var state = f5_] aavPWm\^` state5_] aavPWo\^` if ()5_]aavPWr\^` if (state === generator)5_Z(aavPWyY[`+ return process.implement({}, function() {5_[aavPWZ\` var state = generator5_]aavPW\^` if (state === generator) 5_]aavPW\^` f()5_]aavPW\^` f(value, initial)5_]aavPW\^` f(value, state)5_]aavPW\^` next(value, state)5_] aavPW]_a ]_`5_bbvPXDavar Channel() {}5_ bbvPX var core = require('./core'),5_ aavPX 1 reduce = core.reduce, reduced = core.reduced,5_ ``vPX  reducible = core.reducible5_ __vPZ  _ ^5_ ccvPZ 5_ bbvPZ 5_ vPZpa`5_ vPZya5_ vPZzcb5_ vPZc5_ vPZed5_ vPZe5_ vPZgf5_g vPZgg5_0 vP[/1i }02i 02h5_0 vP[/1h }5_0  vP[/2h } else {}5_0 vP[02j 02i5_1  vP[02j channel[]5_1 vP[02j channel[state]5_, vP[,.k ,.j5_-  vP[,.k channel[]5_- vP[,.k channel[state]5_/ vP[./! channel[state] = result.value5_0  vP[/1j } else {5_1 vP[01 channel[state] 5_1 vP[01 }5_ .* vP[-/h* if (result && result.is === processed) {5_  0 vP[/0 }5_   $ vP\ $&h $&g5_   %  vP\ $&h channel[]5_   % vP\$% channel[std]5_  % vP\%'h %'g5_ &  vP\%'h channel[]5_& vP\%'h channel[state]5_L vP]KMh })5_? vPp?Ai ?Ah5_@ vPp?Ai console.log()5_A vPqb@Bi3 return value === end ? deliver(promise, result)5_B vPqfACi+ : f(result, value)5_@ vPqj?@ console.log(value, result)5_7  vPqn68h next(end, result)5_I, vPqIKi IKh5_J vPqIKi console.log()5_J vPqIKi console.log('')5_J vPqIKi console.log('tranform')5_J vPqIKi console.log('tranform')`5_J vPqIKi console.log('tranform')5_J$J* vPqIKi, console.log('tranform', value. result)5_?#J* vPr;?Aj ?Ai5_ @K* vPr>?Aj console.log()5_! @K* vPr@?Aj console.log('')5_ "!@K* vPrB?Aj console.log('reduce')5_!$"K+K* vPr!JLj, console.log('tranform', value, result)5_"%#$@'K*A A#v#Ps"?Aj( console.log('reduce', value, result)5_$&%@K*A A#v#Ps#?@C console.log('reduce', value, result, value && value.is === end)5_%'&JJ*@ @#v#Ps$IJ2 console.log('tranform', value, result, next)5_&('*@ @#v#Pt%_a> return process.implement({}, function(self, next, initial) {HJ- process(source, function(value, result) {GI> return process.implement({}, function(self, next, initial) {>@+ process(source, function(value, result) {46 var next = channel[processor].0( if (result && result.is === processed),.8 var result = channel[processor](value, channel[state])(* channel[processor] = null$& channel[processor] = next#%:process.define(Channel, function(channel, next, initial) {!var processor = Name()exports.process = processvar process = Method()@var processed = Box('Indicator that source has being processed')5_')(:'*@ @#v#Pt&9;h)function channel() { return new Channel }5_(*)_*@ @#v#Pt^`hfunction generator(f) {5_)+*b*__vPt+ach f(function(value) {5_*,+"*``vPu@"#h"$ifunction Type()5_+-,#*``vPuD"$ifunction Type() {}5_,.-#*aavPuE"$ifunction Type() {}5_-/.#*bbvPuH#$j #%k var type = function()5_.0/$*bbvPuO#%k var type = function() {}5_/10$*ccvPuQ#%k var type = function() {}5_021#*ccvPu\"$lfunction Type(methods) {5_132#*ddvPu^#$l5_243$*ccvPu_#%5_354$*ddvPu`$%l5_465%*ccvPub$&5_576$ *ccvPud#%l function() {}5_6;7$ *ccvPuf#%l function type() {}5_7<8;$*ddvPu|$%l $&m methods.forEach()5_;=<%*ddvPu$&m methods.forEach(function())5_<>=%*ddvPu$&m methods.forEach(function() {})5_=?>%*eevPu$&m methods.forEach(function() { })5_>@?%*eevPu$&n methods.reduce(function() {5_?A@%*eevPu$&n3 methods.reduce(function(method, implementation) {5_@BA%/*ffvPu%&n %'o if ()5_ACB&*ffvPu%'o if (method)5_BDC&*ffvPu%'o if (method) method.define()5_CED&*ffvPu%'o3 if (method) method.define(type, implementation)5_DFE&1*ggvPu&'o &(p els5_EGF'*ggvPu&(p else return 5_FHG'*ggvPu&(p else return 5_GIH%0*ggvPu$&p* methods.reduce(function(method, value) {5_HJI&2*ggvPu%'p* if (method) method.define(type, value)5_IKJ&*ggvPu%'p+ if (!method) method.define(type, value)5_JLK&*hhvPu%'p if (!method) return value# else method.define(type, value)5_KML' *hhvPu&(q method.define(type, value)5_LNM(*ggvPu')')p })5_MON)*ggvPu(*p return type5_NPO**hhvPu(*+p5_OQP+*iivPu+,q+-rvar channel = Type()5_PRQ,*iivPv+-rvar channel = Type([])5_QSR,*jjvPv+-rvar channel = Type([])5_RTS,*kkvPv,-s,.t accumulate, function()5_SUT-*kkvPv,.t. accumulate, function(channel, next, initial)5_TVU-.*kkvPv,.t1 accumulate, function(channel, next, initial) {}5_UWV-0*23vPv,.t0 accumulate, function(channel, next, initial) { }5_VXW-*45vPv-.u -/v channel[accumulateor] = next channel[state] = initial5_WYX/*45vPv.0w channel[state] = initial5_XZY2*34vPv135_Y[Z2*23vPv135_Z\[2*22vPv135_[]\2*22vPv135_\^]2*22vPv 135_]_^0*11vPv!/15_^`_0*00vPv#/15__a`/*11vPv$.0p channel[state] = initial },5_`ba1*11vPv(02q- dispose.define(Channel, function(channel) {5_acb1*11vPv,02q dispose, function(channel) {5_bdc2*11vPv/13q channel[accumulateor] = null5_ced3*11vPv024q channel[state] = null5_de3*11vPv134q 35r }5_79;8$*ccvPuj#%l function type() { }5_8:9$*ccvPuk#%l! function type() { return this }5_9:$ *ccvPux#%l! function Type() { return this }5_"$#K* vPs3 JL5_\^^vPV[][]] function 5_\]]vPV[]5_\\\vPV[]5_[[[vPVZ\5_"$#PSfunction monogam(left, right) {5_XZY> == v P/=?G@ process.implement({}, function tranform(self, next, initial) {5_8:?9?)P.?@H ?AI result = f()5_9;:@P.?AI result = f(value, result)5_:<;@P.@AI @BJ if ()5_;=<A P.@BJ# if (result && result.isBoxed)5_<>=AP.@B5_=>@P.?AI return f(value, result)5