//>>built
define("dojox/lang/functional/binrec",["dojo","dijit","dojox","dojo/require!dojox/lang/functional/lambda,dojox/lang/functional/util"],function(h,p,o){h.provide("dojox.lang.functional.binrec");h.require("dojox.lang.functional.lambda");h.require("dojox.lang.functional.util");(function(){var b=o.lang.functional,i=b.inlineLambda,h=["_z.r","_r","_z.a"];b.binrec=function(a,f,d,g){var k,j,l,m,n={},c={},e=function(a){n[a]=1};"string"==typeof a?a=i(a,"_x",e):(k=b.lambda(a),a="_c.apply(this, _x)",c["_c=_t.c"]=
1);"string"==typeof f?f=i(f,"_x",e):(j=b.lambda(f),f="_t.apply(this, _x)");"string"==typeof d?d=i(d,"_x",e):(l=b.lambda(d),d="_b.apply(this, _x)",c["_b=_t.b"]=1);"string"==typeof g?g=i(g,h,e):(m=b.lambda(g),g="_a.call(this, _z.r, _r, _z.a)",c["_a=_t.a"]=1);e=b.keys(n);c=b.keys(c);a=new Function([],"var _x=arguments,_y,_z,_r".concat(e.length?","+e.join(","):"",c.length?",_t=_x.callee,"+c.join(","):"",j?c.length?",_t=_t.t":"_t=_x.callee.t":"",";while(!",a,"){_r=",d,";_y={p:_y,a:_r[1]};_z={p:_z,a:_x};_x=_r[0]}for(;;){do{_r=",
f,';if(!_z)return _r;while("r" in _z){_r=',g,";if(!(_z=_z.p))return _r}_z.r=_r;_x=_y.a;_y=_y.p}while(",a,");do{_r=",d,";_y={p:_y,a:_r[1]};_z={p:_z,a:_x};_x=_r[0]}while(!",a,")}"));if(k)a.c=k;if(j)a.t=j;if(l)a.b=l;if(m)a.a=m;return a}})()});