text: caterwaul.tconfiguration('std','seq.core',function (){this.configure('std').shallow('seq',{core:fn_[this],define:fb[name,ctor,_at][(this.seq[name]=ctor).prototype=this.util.merge(new this.seq.core(),{_at:_at}),this.seq]});this.seq.core.prototype.size()=this.length;this.seq.core.prototype.at(n)=n<0?this.at(this.finite_bound+n):n<this.finite_bound?this[n]:n>=this.length?undefined:(this[n]=this._at(n),this.finite_bound=n+1,this[n])});caterwaul.tconfiguration('std opt','seq.core.prepare',function (){this.configure('seq.core').seq.core.prototype.prepare(n)=(this.at((n||this.length)-1),this);this.seq.core.prototype.force(n)=(this.prepare(n),let[result=[]][opt.unroll[i,n||this.length][result.push(this[i])],result])});caterwaul.tconfiguration('std','seq.class.ana',function (){this.configure('seq.core').seq.define('ana',fn[f,xs][this.length=0,this.next=f,this.finite_bound=Array.prototype.push.apply(this,xs||[]),this.length=Infinity,this],fn[n][this.next.call(this,n>0?this.at(n-1):undefined)])});caterwaul.tconfiguration('std','seq.ana',function (){let[ctransform=this.configure('seq.core seq.class.ana').seq.ana.anamorphic_constructor_transform(body)=qs[fn[x][_body,where*[t=this,$(n)=t.at(n),n=t.finite_bound]]].replace({_body:body}),ana=this.seq.ana] in this.rmacro(qs[seq.ana[_]],fn[body][with_gensyms[init][fn[init][new _class(_f,init)]].replace({_f:ctransform(body),_class:new this.ref(ana)})]).rmacro(qs[_<sa<_],fn[form,init][qs[seq.ana[_form](_init)].replace({_form:form,_init:init})])});caterwaul.tconfiguration('std','seq.class.map',function (){this.configure('seq.core').seq.define('map',fn[f,xs][this.length=xs.length,this.base=xs,this.f=f,this],fn[n][this.f.call(this,this.base.at(n))]);let[map=this.seq.map][this.seq.core.prototype.map(f)=new map(f,this)]});caterwaul.tconfiguration('std','seq.map',function (){let[ctransform=this.configure('seq.core seq.class.map').seq.map.map_comprehension_transform(body)=qs[fn[x][_body,where*[t=this,$(n)=t.at(n),n=t.finite_bound]]].replace({_body:body}),map=this.seq.map] in this.rmacro(qs[_<sm<_],fn[body,xs][qs[qg[new _class(_f,_xs)]].replace({_class:new this.ref(map),_f:ctransform(body),_xs:xs})])});caterwaul.configuration('seq',function (){this.configure('seq.core.prepare seq.ana seq.map')});