VimUnDoBG{3+޿:M&/.rrrrP y@_P v5_P v5_P vbinarial5_P vfunction binarial5_P vfunction Binoid()5_P vfunction Binoid() {}5_P v"function Binoid() {5_ P v'5_ P v/ 5_ P v2 5_ P v=5_  P vCfirst.define()5_  P vM first.define(Binoid, function())5_ !P vM#first.define(Binoid, function() {})5_P vS!first.define(Binoid, function() {5_#P vU5_P vY5_P v\function left()5_P va5_P ve first()5_ P vg 5_P vp binoid.left ? first()5_P vq binoid.left ? first(binoid)5_P v binoid.left ? first(binoid) : 5_'P v first' return binoid.left ? first(binoid) : 5_P v first()5_P v first()5_#P v& return binoid.left ? first(binoid) :5_P v first(binoid)5_P v rest.define5_  P v rest.define()5_! P vrest.define(Binoid, function())5_ "!$P v%rest.define(Binoid, function(binoid))5_!#"&P v(rest.define(Binoid, function(binoid) {})5_"$#P v5_#%$P v5_$&%P v return binoid.left ? rest()5_%'&P v( return binoid.left ? rest(binoid.left)5_&('3P v3 return binoid.left ? new Binoid(rest(binoid.left)5_')(P v 5_(*)P v var restLeft = rest()5_)+*P v 5_*,+P v if ()5_+-,P v return isEmpty()5_,.-P w' : new Binoid return isEmpty(restLeft)5_-/.(P w) : new Binoid()5_.0/P w var restLeft = rest(binoid)5_/10P w+ return isEmpty(restLeft) ? binoid.right :5_021P w3 : new Binoid(restLeft, )5_132,P w/ : new Binoid(restLeft, )5_243*P w"+ : new Binoid(tail, )5_354P w$D return binoid.left ? new Binoid(rest(binoid.left), binoid.right) :5_465 P w% binoid.right ? new 5_576P w(7 : new Binoid(tail, binoid.right)5_687P w0-var eventuals = require('eventual/eventual'),5_798P w0O defer = eventuals.defer, deliver = eventuals.deliver, when = eventuals.when5_8:9P w15_9;: =P w2 = first = sequence.first, rest = sequence.rest, cons = cons5_:<;P wF })5_;=<P wrfunction binoid5_<>=#P wy&rest.define(Binoid, function(binoid) {5_=?>P w| var tail = rest(binoid)5_>@?P w' return isEmpty(tail) ? binoid.right :5_?A@!P w) return isEmpty(tail) ? sequence.right :5_@BA#P w7 new Binoid(tail, binoid.right)5_ACB,P w 3 binoid(tail, binoid.right)5_BDCP wfunction binoid()5_CEDP wfunction binoid(left, right)5_DFEP wfunction binoid(left, right) {}5_EGFP w 5_FHGP w return new Binoid()5_GJHP w  return new Binoid()5_HKIJP w this.right = right5_JLKP w   this.left = left5_KML/P w0 return new Binoid(left || null, right || null)5_LOMP wfunction binoid(left, right) {5_MPNO$P w'first.define(Binoid, function(binoid) {5_ORPP w+ return binoid.left ? first(binoid.left) :5_PSQR!P w) return self.left ? first(binoid.left) :5_RTSP x first(binoid.right)5_SUT P x first(self.right)5_TVUP x& first(self.right)5_UWV'P x' self.right ? first(self.right)5_VXWP x& function binoid() {5_WZX P x*!# function map  5_X[YZP x25_Z\[P x2function binoid(left, right) {5_[]\P x3 return new Binoid(left, right)5_\^]P x3}5_]_^P x35_^`_P x4function map()5__a`P x{5_`ba/P x/Binoid.prototype.toString = function toString()5_acb1P x2Binoid.prototype.toString = function toString() {}5_bdcP x 5_cedP x 5_dfeP x& var value = '', tail = this;5_egfP x& var value = '', tail = this;5_fhgP x& var value = '', tail = left;5_gihP x' &5_hjivP x( '5_ilj*vP y )++1 binoid(tail, self.right)5_jmkl+vP y,. exports.conact = function conact++5_lnm-"vP y),."exports.conact = function conact()5_mon-$vP y*,%exports.conact = function conact() {}5_npo-vP y+-/.5_oqp-!vP y0,./$exports.conact = function conact() {5_prq.vP y4-//5_qr.vP y?-// return new Binoid()5_jlk*"vP y)++4 new Binoi(tail, self.right)5_XZYP x/#})5_PRQP w   var fi5_MONP w5_HJIP w  this.left = left || 5