

#include "BUILTIN.h"
extern OBJ __ASeq_6;

#include "Nat.h"
extern OBJ _ASeqMap_3(OBJ,OBJ);OBJ __ASeqMap_3; /* * */
extern OBJ _ASeqMap_4(OBJ,OBJ);OBJ __ASeqMap_4; /* map */
extern OBJ _ASeqMap_5(OBJ,OBJ);OBJ __ASeqMap_5; /* map,1 */

extern OBJ _ASeqMap_3(register OBJ x1,register OBJ x2) /* * */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=__ASeq_6;
  }else{
   {OBJ x19=FLD1(x2,1);OBJ x20=FLD1(x2,2);
    if(EXPRD(x2,1)){
     CPCLS(x1,1);
     {OBJ x23;
      x23=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x19);
      RSOME(x2,*p1);FLD1(*p1,1)=x23;
      x2=x20;p1=&FLD1(*p1,2);continue;}
    }else{
     COPY(x19,1);COPY(x20,1);
     CPCLS(x1,1);
     {OBJ x23;
      x23=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x19);
      FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x23;
      x2=x20;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _ASeqMap_4(OBJ x1,OBJ x2) /* map */
{OBJ r;
 r=_ASeqMap_3(x1,x2);
 return r;}

extern OBJ _ASeqMap_5(OBJ x1,OBJ x2) /* map,1 */
{OBJ r;
 r=_ASeqMap_3(x1,x2);
 return r;}

static OBJ _mt_2_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_2_1_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1);
 return r;}
static OBJ _mt_2_1_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_ASeqMap()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeq();
 init_ANat();
 init_AOption();
 CLS(2,_ASeqMap_5,__ASeqMap_5);
 CLS(2,_ASeqMap_4,__ASeqMap_4);
 CLS(2,_ASeqMap_3,__ASeqMap_3);
 MTH(2,0,1,_mt_2_0_1);LZYMTH(2,0,1,_mt_2_0_1);
 MTH(2,1,1,_mt_2_1_1);LZYMTH(2,1,1,_mt_2_1_1_l);}

