

#include "BUILTIN.h"
extern OBJ __ASeq_6;

#include "Nat.h"
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);OBJ __ASeqMapEnv_4; /* * */

extern TUP2 _ASeqMapEnv_4(register OBJ x1,register OBJ x2,register OBJ x3) /* * */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   *p1=x2;*p2=__ASeq_6;
  }else{
   {OBJ x28=FLD1(x3,1);OBJ x29=FLD1(x3,2);
    if(EXPRD(x3,1)){
     CPCLS(x1,1);
     {OBJ x32;OBJ x33;
      {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x28);
       x32=FLD1(t,1);
       x33=FLD1(t,2);
       DSPRDF(t);}
      RSOME(x3,*p2);FLD1(*p2,1)=x33;
      x2=x32;x3=x29;p2=&FLD1(*p2,2);continue;}
    }else{
     COPY(x28,1);COPY(x29,1);
     CPCLS(x1,1);
     {OBJ x32;OBJ x33;
      {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x28);
       x32=FLD1(t,1);
       x33=FLD1(t,2);
       DSPRDF(t);}
      FRPRD(x3,1);PRD1(2,*p2);FLD1(*p2,1)=x33;
      x2=x32;x3=x29;p2=&FLD1(*p2,2);continue;}}}}
  break;}
 return r;}
extern OBJ _ASeqMapEnv_4_c(OBJ x1,OBJ x2,OBJ x3) /* * */
{OBJ r;
 {TUP2 t=_ASeqMapEnv_4(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

init_ASeqMapEnv()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeq();
 init_ANat();
 init_AOption();
 CLS(3,_ASeqMapEnv_4_c,__ASeqMapEnv_4);}

