

#include "BUILTIN.h"
extern OBJ __ATree_7;

#include "Nat.h"
extern OBJ _ATreeMap_3(OBJ,OBJ);OBJ __ATreeMap_3; /* * */

extern OBJ _ATreeMap_3(register OBJ x1,register OBJ x2) /* * */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=__ATree_7;
  }else{
   {OBJ x33=FLD1(x2,1);OBJ x34=FLD1(x2,2);OBJ x35=FLD1(x2,3);
    if(EXPRD(x2,1)){
     CPCLS(x1,2);
     {OBJ x39;OBJ x38;
      x39=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x33);
      x38=_ATreeMap_3(x1,x34);
      RSOME(x2,*p1);FLD1(*p1,1)=x39;FLD1(*p1,2)=x38;
      x2=x35;p1=&FLD1(*p1,3);continue;}
    }else{
     COPY(x33,1);COPY(x34,1);COPY(x35,1);
     CPCLS(x1,2);
     {OBJ x39;OBJ x38;
      x39=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x33);
      x38=_ATreeMap_3(x1,x34);
      FRPRD(x2,1);PRD1(3,*p1);FLD1(*p1,1)=x39;FLD1(*p1,2)=x38;
      x2=x35;p1=&FLD1(*p1,3);continue;}}}}
  break;}
 return r;}

init_ATreeMap()
{
 static int visited=0; if(visited) return; visited=1;
 init_ATree();
 init_ANat();
 init_AOption();
 init_ASeq();
 init_ARelCmp();
 CLS(2,_ATreeMap_3,__ATreeMap_3);}

