

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);OBJ __ASeqReduce_3; /* / */
extern OBJ _ASeqReduce_4(OBJ,OBJ,OBJ);OBJ __ASeqReduce_4; /* \ */
extern OBJ _ASeqReduce_5(OBJ,OBJ,OBJ);OBJ __ASeqReduce_5; /* reduce */
extern OBJ _ASeqReduce_6(OBJ,OBJ,OBJ);OBJ __ASeqReduce_6; /* reduce,1 */
extern OBJ _ASeqReduce_7(OBJ,OBJ,OBJ);OBJ __ASeqReduce_7; /* /,1 */
extern OBJ _ASeqReduce_8(OBJ,OBJ,OBJ);OBJ __ASeqReduce_8; /* \,1 */

extern OBJ _ASeqReduce_3(OBJ x1,OBJ x2,OBJ x3) /* / */
{OBJ r;
 if(ISPRM(x3)){
  FRCLS(x1,1);
  r=x2;
 }else{
  {OBJ x19=FLD1(x3,1);OBJ x20=FLD1(x3,2);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    COPY(x19,1);COPY(x20,1);
    FRPRD(x3,1);}
   CPCLS(x1,1);
   {OBJ x22;
    x22=_ASeqReduce_3(x1,x2,x20);
    r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x19,x22);}}}
 return r;}

extern OBJ _ASeqReduce_4(register OBJ x1,register OBJ x2,register OBJ x3) /* \ */
{OBJ r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   r=x2;
  }else{
   {OBJ x19=FLD1(x3,1);OBJ x20=FLD1(x3,2);
    if(EXPRD(x3,1)){
     DSPRDF(x3);
    }else{
     COPY(x19,1);COPY(x20,1);
     FRPRD(x3,1);}
    CPCLS(x1,1);
    {OBJ x22;
     x22=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x19,x2);
     x2=x22;x3=x20;continue;}}}
  break;}
 return r;}

extern OBJ _ASeqReduce_5(OBJ x1,OBJ x2,OBJ x3) /* reduce */
{OBJ r;
 r=_ASeqReduce_3(x1,x2,x3);
 return r;}

extern OBJ _ASeqReduce_6(OBJ x1,OBJ x2,OBJ x3) /* reduce,1 */
{OBJ r;
 r=_ASeqReduce_3(x1,x2,x3);
 return r;}

extern OBJ _ASeqReduce_7(OBJ x1,OBJ x2,OBJ x3) /* /,1 */
{OBJ r;
 r=_ASeqReduce_3(x1,x2,x3);
 return r;}

extern OBJ _ASeqReduce_8(OBJ x1,OBJ x2,OBJ x3) /* \,1 */
{OBJ r;
 r=_ASeqReduce_4(x1,x2,x3);
 return r;}

init_ASeqReduce()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeq();
 init_ANat();
 init_AOption();
 CLS(3,_ASeqReduce_8,__ASeqReduce_8);
 CLS(3,_ASeqReduce_7,__ASeqReduce_7);
 CLS(3,_ASeqReduce_6,__ASeqReduce_6);
 CLS(3,_ASeqReduce_5,__ASeqReduce_5);
 CLS(3,_ASeqReduce_4,__ASeqReduce_4);
 CLS(3,_ASeqReduce_3,__ASeqReduce_3);}

