

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _APair_4(OBJ);extern OBJ __APair_4;
extern OBJ _APair_5(OBJ);extern OBJ __APair_5;
extern OBJ _AMapFilter_4(OBJ,OBJ,OBJ);extern OBJ __AMapFilter_4;
extern TUP2 _AMapFilter_5(OBJ,OBJ,OBJ);extern OBJ __AMapFilter_5;
extern OBJ _AArrayMap_3(OBJ,OBJ);extern OBJ __AArrayMap_3;

#include "Array.h"
extern OBJ _ACAST_3(OBJ);extern OBJ __ACAST_3;
extern OBJ _ANatMapFilter_2(OBJ,OBJ);OBJ __ANatMapFilter_2; /* | */
extern TUP2 _ANatMapFilter_3(OBJ,OBJ);OBJ __ANatMapFilter_3; /* partition */
extern OBJ _ANatMapFilter_4(OBJ,OBJ);OBJ __ANatMapFilter_4; /* |'4 */
extern OBJ _ANatMapFilter_5(OBJ,OBJ);OBJ __ANatMapFilter_5; /* partition'5 */

extern OBJ _ANatMapFilter_2(OBJ x1,OBJ x2) /* | */
{OBJ r;
 CPCLS(__ANatMapFilter_4,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_ACAST_3(x2);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ANatMapFilter_4,1))(__ANatMapFilter_4,x1);
  x5=_AArrayMap_3(x4,x3);
  r=_ACAST_3(x5);}
 return r;}

extern TUP2 _ANatMapFilter_3(OBJ x1,OBJ x2) /* partition */
{TUP2 r;
 CPCLS(__ANatMapFilter_5,1);
 CPCLS(__APair_4,1);
 CPCLS(__APair_5,1);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  x3=_ACAST_3(x2);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ANatMapFilter_5,1))(__ANatMapFilter_5,x1);
  x5=_AArrayMap_3(x4,x3);
  CPPRD(x5,1);
  x6=_AArrayMap_3(__APair_5,x5);
  x7=_AArrayMap_3(__APair_4,x5);
  r.c1=_ACAST_3(x6);
  r.c2=_ACAST_3(x7);}
 return r;}
extern OBJ _ANatMapFilter_3_c(OBJ x1,OBJ x2) /* partition */
{OBJ r;
 {TUP2 t=_ANatMapFilter_3(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _ANatMapFilter_4(OBJ x1,OBJ x2) /* |'4 */
{OBJ r;
 CPCLS(__ANat_80,1);
 r=_AMapFilter_4(__ANat_80,x1,x2);
 return r;}

extern OBJ _ANatMapFilter_5(OBJ x1,OBJ x2) /* partition'5 */
{OBJ r;
 CPCLS(__ANat_80,1);
 {
  PRD1(2,r);
  {TUP2 t=_AMapFilter_5(__ANat_80,x1,x2);
   FLD1(r,1)=t.c1;
   FLD1(r,2)=t.c2;}}
 return r;}

init_ANatMapFilter()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANatMap();
 init_ANat();
 init_AOption();
 init_ASet();
 init_ASeq();
 init_APair();
 init_ANatMapNotForUserPurpose();
 init_AMapFilter();
 init_AArrayMap();
 init_AArray();
 init_AMap();
 init_ACAST();
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 CLS(2,_ANatMapFilter_5,__ANatMapFilter_5);
 CLS(2,_ANatMapFilter_4,__ANatMapFilter_4);
 CLS(2,_ANatMapFilter_3_c,__ANatMapFilter_3);
 CLS(2,_ANatMapFilter_2,__ANatMapFilter_2);}

