

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _ABSTree_6(OBJ,OBJ);extern OBJ __ABSTree_6;
extern OBJ _ABSTreeReduce_6(OBJ,OBJ,OBJ,OBJ);extern OBJ __ABSTreeReduce_6;
extern OBJ _ASetByBSTFold_3(OBJ,OBJ,OBJ);OBJ __ASetByBSTFold_3; /* / */

extern OBJ _ASetByBSTFold_3(OBJ x1,OBJ x2,OBJ x3) /* / */
{OBJ r;
 if(ISPRM(x3)){
  HLT("/\'SetByBSTFold: applied to empty set");
 }else{
  {OBJ x26=FLD1(x3,2);OBJ x27=FLD1(x3,3);
   COPY(x26,1);COPY(x27,1);
   CPCLS(x1,2);
   CPCLS(x2,1);
   {OBJ x28;OBJ x30;
    x28=_ABSTree_6(x1,x3);
    x30=_ABSTreeReduce_6(x1,x2,x28,x26);
    r=_ABSTreeReduce_6(x1,x2,x30,x27);}}}
 return r;}

init_ASetByBSTFold()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASetByBST();
 init_ANat();
 init_ASeq();
 init_AOption();
 init_ABSTree();
 init_ATree();
 init_APair();
 init_ABSTreeReduce();
 CLS(3,_ASetByBSTFold_3,__ASetByBSTFold_3);}

