

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _AISeqUnreduce_3(OBJ,OBJ);OBJ __AISeqUnreduce_3; /* / */
extern OBJ _AISeqUnreduce_4(OBJ,OBJ);OBJ __AISeqUnreduce_4; /* /'4 */
extern OBJ _AISeqUnreduce_5(OBJ,OBJ,OBJ);OBJ __AISeqUnreduce_5; /* /'5 */

extern OBJ _AISeqUnreduce_3(OBJ x1,OBJ x2) /* / */
{OBJ r;
 CPCLS(__AISeqUnreduce_4,1);
 CPCLS(__AISeqUnreduce_5,1);
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  {OBJ t=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
   x4=FLD1(t,1);
   x5=FLD1(t,2);
   DSPRDF(t);}
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AISeqUnreduce_4,1))(__AISeqUnreduce_4,x4);
  x7=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AISeqUnreduce_5,2))(__AISeqUnreduce_5,x1,x5);
  PRD1(2,r);FLD1(r,1)=x6;FLD1(r,2)=x7;}
 return r;}

extern OBJ _AISeqUnreduce_4(OBJ x1,OBJ x2) /* /'4 */
{OBJ r;
 r=x1;
 return r;}

extern OBJ _AISeqUnreduce_5(OBJ x1,OBJ x2,OBJ x3) /* /'5 */
{OBJ r;
 r=_AISeqUnreduce_3(x1,x2);
 return r;}

static OBJ _mt_3_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,2);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 return r;}

static OBJ _mt_3_2_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 return r;}
static OBJ _mt_3_2_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AISeqUnreduce()
{
 static int visited=0; if(visited) return; visited=1;
 init_AISeq();
 init_ANat();
 init_AOption();
 init_ASeq();
 LCLS(3,_AISeqUnreduce_5,__AISeqUnreduce_5);
 LCLS(2,_AISeqUnreduce_4,__AISeqUnreduce_4);
 CLS(2,_AISeqUnreduce_3,__AISeqUnreduce_3);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);}

