

#include "BUILTIN.h"
extern OBJ __AIdeMap_3;

#include "Denotation.h"
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _AAc_21(OBJ);extern OBJ __AAc_21;
extern OBJ _AAc_22(OBJ);extern OBJ __AAc_22;
extern OBJ _AAc_43(OBJ);extern OBJ __AAc_43;
extern OBJ _AAc_50(OBJ);extern OBJ __AAc_50;
extern OBJ _APreparedOptions_8(OBJ);extern OBJ __APreparedOptions_8;
extern OBJ _APreparedOptions_9(OBJ);extern OBJ __APreparedOptions_9;
extern OBJ _APreparedOptions_17(OBJ);extern OBJ __APreparedOptions_17;
extern OBJ _APreparedOptions_18(OBJ);extern OBJ __APreparedOptions_18;
extern OBJ _APreparedOptions_19(OBJ);extern OBJ __APreparedOptions_19;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern OBJ __AEqnSys_2;
extern TUP2 _AEqnSys_3(OBJ,OBJ);extern OBJ __AEqnSys_3;
extern TUP2 _AEqnSys_4(OBJ,OBJ,OBJ);extern OBJ __AEqnSys_4;
extern OBJ _AEqnSys_5(OBJ,OBJ);extern OBJ __AEqnSys_5;
extern OBJ _AEqnSys_6(OBJ,OBJ,OBJ);extern OBJ __AEqnSys_6;
extern OBJ _AEqnSys_7(OBJ,OBJ,OBJ);extern OBJ __AEqnSys_7;
extern OBJ _AEqnSys_8(OBJ,OBJ);extern OBJ __AEqnSys_8;
extern OBJ _AEqnSys_10(OBJ,OBJ);extern OBJ __AEqnSys_10;
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;
extern OBJ __AOcError_15;
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;
extern OBJ _AAcFun_5(OBJ);extern OBJ __AAcFun_5;
extern OBJ _AAcFun_6(OBJ);extern OBJ __AAcFun_6;
extern OBJ _AAcFun_8(OBJ,OBJ);extern OBJ __AAcFun_8;
extern OBJ _AAcFun_10(OBJ,OBJ);extern OBJ __AAcFun_10;
extern OBJ _ATypeAnFun_1(OBJ,OBJ);extern OBJ __ATypeAnFun_1;
extern OBJ _ATypeAnFun_4(OBJ);extern OBJ __ATypeAnFun_4;
extern OBJ _ATypeAnFun_5(OBJ,OBJ,OBJ);extern OBJ __ATypeAnFun_5;
extern OBJ _ATypeAnFun_8(OBJ,OBJ);extern OBJ __ATypeAnFun_8;
extern OBJ _ATypeAnFun_9(OBJ,OBJ);extern OBJ __ATypeAnFun_9;
extern OBJ _ATypeAnFun_10(OBJ,OBJ);extern OBJ __ATypeAnFun_10;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _ASeq_40(OBJ,OBJ);extern OBJ __ASeq_40;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;
extern OBJ _AOptimAnFun_1(OBJ,OBJ);extern OBJ __AOptimAnFun_1;
extern OBJ _AAnFun_1(OBJ,OBJ,OBJ);extern OBJ __AAnFun_1;
extern OBJ __ABuiltin_15;

#include "Nat.h"
extern OBJ _AMap_10(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_10;
extern OBJ _AMap_16(OBJ,OBJ,OBJ);extern OBJ __AMap_16;
extern OBJ _AMap_20(OBJ,OBJ,OBJ);extern OBJ __AMap_20;
extern OBJ _AMap_31(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_31;

#include "Char.h"
extern OBJ _ABSTree_57(OBJ,OBJ,OBJ);extern OBJ __ABSTree_57;
extern OBJ _ABSTree_58(OBJ,OBJ,OBJ);extern OBJ __ABSTree_58;
extern OBJ _ABSTree_61(OBJ,OBJ,OBJ);extern OBJ __ABSTree_61;

#include "Array.h"

#include "Int.h"

#include "Bitset.h"
extern OBJ _AIde_13(OBJ,OBJ);extern OBJ __AIde_13;
extern OBJ _AIde_14(OBJ,OBJ);extern OBJ __AIde_14;
extern OBJ __AIdeSet_2;
extern OBJ _ASetByBSTConv_7(OBJ,OBJ);extern OBJ __ASetByBSTConv_7;
extern OBJ __AAn_2;
extern OBJ _AAn_3(OBJ,OBJ);extern OBJ __AAn_3;
extern OBJ _AAn_5(OBJ,OBJ);extern OBJ __AAn_5;
extern OBJ _ATypeAn_29(OBJ);extern OBJ __ATypeAn_29;
extern OBJ __ATypeAn_40;
extern OBJ __ATypeAn_52;
extern OBJ __ASourceAn_4;
extern OBJ __ASourceAn_6;
extern OBJ __ASourceAn_28;
extern OBJ __ASourceAn_30;
extern OBJ _AOptimAn_8(OBJ);extern OBJ __AOptimAn_8;
extern OBJ __AOptimAn_24;
extern TUP3 _AOptimCse_1(OBJ,OBJ,OBJ);OBJ __AOptimCse_1; /* optimCse */
extern OBJ _AOptimCse_3(OBJ,OBJ);OBJ __AOptimCse_3; /* thr */
extern OBJ _AOptimCse_4(OBJ);OBJ __AOptimCse_4; /* thr? */
extern OBJ _AOptimCse_5(OBJ);OBJ __AOptimCse_5; /* unfolds */
extern OBJ _AOptimCse_6(OBJ);OBJ __AOptimCse_6; /* sys */
extern OBJ _AOptimCse_8(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_8; /* ctx */
extern OBJ _AOptimCse_9(OBJ);OBJ __AOptimCse_9; /* ctx? */
extern OBJ _AOptimCse_10(OBJ);OBJ __AOptimCse_10; /* subs */
extern OBJ _AOptimCse_11(OBJ);OBJ __AOptimCse_11; /* const? */
extern OBJ _AOptimCse_12(OBJ);OBJ __AOptimCse_12; /* an */
extern OBJ _AOptimCse_13(OBJ);OBJ __AOptimCse_13; /* unit */
extern OBJ _AOptimCse_14(OBJ);OBJ __AOptimCse_14; /* popts */
extern TUP2 _AOptimCse_16(OBJ,OBJ,OBJ);OBJ __AOptimCse_16; /* enter */
extern OBJ _AOptimCse_17(OBJ,OBJ);OBJ __AOptimCse_17; /* upd */
extern OBJ _AOptimCse_18(OBJ,OBJ);OBJ __AOptimCse_18; /* upd,1 */
extern OBJ _AOptimCse_19(OBJ,OBJ);OBJ __AOptimCse_19; /* upd,2 */
extern TUP2 _AOptimCse_20(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_20; /* enterApply */
extern OBJ _AOptimCse_21(OBJ,OBJ);OBJ __AOptimCse_21; /* abort? */
extern OBJ _AOptimCse_22(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_22; /* shallUnfold? */
extern OBJ _AOptimCse_23(OBJ);OBJ __AOptimCse_23; /* implemented? */
extern TUP2 _AOptimCse_24(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_24; /* unfold */
extern OBJ _AOptimCse_25(OBJ,OBJ);OBJ __AOptimCse_25; /* propPos */
extern OBJ _AOptimCse_26(OBJ,OBJ);OBJ __AOptimCse_26; /* specType */
extern TUP2 _AOptimCse_27(OBJ,OBJ,OBJ);OBJ __AOptimCse_27; /* enterMatch */
extern OBJ _AOptimCse_28(OBJ,OBJ);OBJ __AOptimCse_28; /* expand */
extern TUP2 _AOptimCse_29(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_29; /* genMatch */
extern TUP2 _AOptimCse_30(OBJ,OBJ);OBJ __AOptimCse_30; /* genVar */
extern TUP3 _AOptimCse_31(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimCse_31; /* enterBinds */
extern TUP3 _AOptimCse_32(OBJ,OBJ,OBJ);OBJ __AOptimCse_32; /* enterDecs */
extern TUP2 _AOptimCse_33(OBJ,OBJ,OBJ);OBJ __AOptimCse_33; /* insert */
extern OBJ _AOptimCse_34(OBJ,OBJ,OBJ);OBJ __AOptimCse_34; /* type */
extern OBJ _AOptimCse_35(OBJ,OBJ,OBJ);OBJ __AOptimCse_35; /* valTypeAss */
extern OBJ _AOptimCse_36(OBJ,OBJ);OBJ __AOptimCse_36; /* typeDecAss */
extern OBJ _AOptimCse_37(OBJ);OBJ __AOptimCse_37; /* unfold'37 */
extern OBJ _AOptimCse_38(OBJ);OBJ __AOptimCse_38; /* unfold'38 */
extern OBJ _AOptimCse_39(OBJ,OBJ);OBJ __AOptimCse_39; /* enter'39 */
OBJ __AOptimCse_40; /* enter'40 */
OBJ __AOptimCse_41; /* enter'41 */
extern OBJ _AOptimCse_42(OBJ);OBJ __AOptimCse_42; /* enter'42 */
OBJ __AOptimCse_43; /* optimCse'43 */

extern TUP3 _AOptimCse_1(OBJ x1,OBJ x2,OBJ x3) /* optimCse */
{TUP3 r;
 if(ISTGPRD(x3,2)){
  {OBJ x45=FLD(x3,4);
   CPPRD(x45,1);
   {OBJ x46;OBJ x50;OBJ x51;OBJ x52;OBJ x54;OBJ x55;
    x46=_AAc_22(x3);
    if(ISTGPRD(x45,4)){
     x50=__ABUILTIN_5;
    }else{
     x50=__ABUILTIN_3;}
    if(ISTGPRM(x50,1)){
     CPPRD(__AOptimCse_43,1);
     COPY(__AIdeMap_3,1);
     x51=__ABUILTIN_3;
    }else{
     CPPRD(__AOptimCse_43,1);
     COPY(__AIdeMap_3,1);
     x51=__ABUILTIN_5;}
    PRD1(5,x52);FLD1(x52,1)=x1;FLD1(x52,2)=x2;FLD1(x52,3)=x46;FLD1(x52,4)=x51;FLD1(x52,5)=__AIdeMap_3;
    {TUP2 t=_AOptimCse_16(x52,__AOptimCse_43,x45);
     x54=t.c1;
     x55=t.c2;}
    {OBJ x56=FLD1(x54,1);
     if(EXPRD(x54,1)){
      r.c2=x55;r.c1=x56;
      FREE(FLD1(x54,2),1);DSPRDF(x54);
     }else{
      CPPRD(x56,1);
      r.c2=x55;r.c1=x56;
      FRPRD(x54,1);}
     CPPRD(__AOcError_15,1);
     r.c3=__AOcError_15;}}}
 }else{
  HLT("OptimCse at <unknown> : missing else in optimCse\'OptimCse:popts**unit**dec->eqnSys**exp**err");}
 return r;}
extern OBJ _AOptimCse_1_c(OBJ x1,OBJ x2,OBJ x3) /* optimCse */
{OBJ r;
 {TUP3 t=_AOptimCse_1(x1,x2,x3);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern OBJ _AOptimCse_3(OBJ x1,OBJ x2) /* thr */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _AOptimCse_4(OBJ x1) /* thr? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimCse_5(OBJ x1) /* unfolds */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FRPRD(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_6(OBJ x1) /* sys */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FREE(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   CPPRD(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_8(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* ctx */
{OBJ r;
 PRD1(5,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;FLD1(r,5)=x5;
 return r;}

extern OBJ _AOptimCse_9(OBJ x1) /* ctx? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimCse_10(OBJ x1) /* subs */
{OBJ r;
 {OBJ x6=FLD1(x1,5);
  if(EXPRD(x1,1)){
   r=x6;
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   COPY(x6,1);
   r=x6;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_11(OBJ x1) /* const? */
{OBJ r;
 {OBJ x5=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r=x5;
   DSPRD(x1);
  }else{
   r=x5;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_12(OBJ x1) /* an */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_13(OBJ x1) /* unit */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimCse_14(OBJ x1) /* popts */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern TUP2 _AOptimCse_16(OBJ x1,OBJ x2,OBJ x3) /* enter */
{TUP2 r;
 if(ISTGPRD(x3,3)){
  {OBJ x587=FLD(x3,2);OBJ x588=FLD(x3,3);
   CPPRD(x587,1);COPY(x588,1);
   {OBJ x589;
    x589=_AAc_50(x3);
    r=_AOptimCse_20(x1,x2,x589,x587,x588);}}
 }else{
  if(ISTGPRD(x3,5)){
   {OBJ x591=FLD(x3,2);OBJ x592=FLD(x3,3);
    if(EXPRD(x3,1)){
     FREE(FLD(x3,1),1);DSPRDF(x3);
    }else{
     COPY(x591,1);CPPRD(x592,1);
     FRPRD(x3,1);}
    CPPRD(x1,1);
    COPY(__AIdeSet_2,1);
    {TUP3 x594;TUP2 x598;OBJ x600;OBJ x605;
     x594=_AOptimCse_31(x1,x1,x2,__AIdeSet_2,x591);
     x598=_AOptimCse_16(x594.c1,x594.c2,x592);
     CPPRD(x598.c2,1);
     x600=_AAcFun_5(x598.c2);
     if(ISTGPRM(x600,1)){
      {OBJ x601=FLD1(x598.c1,1);
       CPPRD(x601,1);
       if(ISTGPRD(x598.c2,2)){
	{OBJ x604=FLD(x598.c2,2);
	 CPPRD(x604,1);
	 x605=_AEqnSys_8(x601,x604);}
       }else{
	HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
     }else{
      x605=__ABUILTIN_3;}
     if(ISTGPRM(x605,1)){
      {OBJ x606=FLD1(x598.c1,1);OBJ x607=FLD1(x598.c1,2);FLAG x_x598_c1=EXPRD(x598.c1,1);
       if(x_x598_c1){
       }else{
	CPPRD(x606,1);COPY(x607,1);}
       if(ISTGPRD(x598.c2,2)){
	{OBJ x609=FLD(x598.c2,2);
	 CPPRD(x609,2);
	 r.c2=x598.c2;
	 CPCLS(__AIde_14,1);
	 {OBJ x610;
	  x610=_ABSTree_58(__AIde_14,x609,x594.c3);
	  if(x_x598_c1){
	   RSOME(x598.c1,r.c1);
	  }else{
	   FRPRD(x598.c1,1);PRD1(2,r.c1);FLD1(r.c1,2)=x607;}
	  FLD1(r.c1,1)=_AEqnSys_7(x606,x609,x610);}}
       }else{
	HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
     }else{
      r.c1=x598.c1;r.c2=x598.c2;
      FREE(x594.c3,1);}}}
  }else{
   if(ISTGPRD(x3,6)){
    {OBJ x614=FLD(x3,2);OBJ x615=FLD(x3,3);OBJ x616=FLD(x3,4);
     CPPRD(x614,1);COPY(x615,1);CPPRD(x616,1);
     CPPRD(x1,1);
     CPCLS(__AOptimCse_27,1);
     {OBJ x617;OBJ x618;
      x617=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_27,1))(__AOptimCse_27,x1);
      x618=_AAc_50(x3);
      {OBJ x619=FLD1(x1,1);
       CPPRD(x619,2);
       CPPRD(x1,2);
       {OBJ x624;TUP2 x626;TUP2 x629;TUP2 x632;OBJ x635;
	x624=_APreparedOptions_17(x619);
	x626=_AOptimCse_16(x1,x2,x614);
	x629=_ASeqMapEnv_4(x617,x626.c1,x615);
	x632=_AOptimCse_16(x1,x629.c1,x616);
	if(ISTGPRM(x624,1)){
	 if(ISTGPRD(x632.c2,0)){
	  x635=__ABUILTIN_3;
	 }else{
	  x635=__ABUILTIN_5;}
	}else{
	 x635=__ABUILTIN_3;}
	if(ISTGPRM(x635,1)){
	 CPPRD(x1,2);
	 CPPRD(x626.c2,1);
	 CPPRD(x632.c1,1);
	 {OBJ x636;OBJ x637;
	  x636=_AOptimCse_34(x1,x632.c1,x626.c2);
	  x637=_AOptimCse_28(x1,x636);
	  if(ISPRD(x637)&&(ISTGPRD(x637,5))){
	   {OBJ x638=FLD(x637,1);FLAG x_x637=EXPRD(x637,1);
	    if(x_x637){
	    }else{
	     COPY(x638,1);}
	    COPY(x629.c2,1);
	    CPCLS(__AOptimCse_39,1);
	    CPCLS(__ABUILTIN_7,1);
	    CPCLS(__ATypeAn_29,1);
	    CPCLS(__ACompose_4,2);
	    {OBJ x639;OBJ x640;OBJ x641;OBJ x642;OBJ x643;OBJ x644;OBJ x646;
	     x639=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_39,1))(__AOptimCse_39,x629.c2);
	     x640=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,x639,__ATypeAn_29);
	     x641=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__ABUILTIN_7,x640);
	     x642=_ASeqFilter_2(x641,x638);
	     COPY(x642,1);
	     x643=_ASeq_52(x642,__ANat_5);
	     ANat_81(x643,__ANat_5,x644);
	     if(ISTGPRM(x644,1)){
	      {OBJ x645;
	       ANat_80(x643,__ANat_9,x645);
	       if(ISTGPRM(x645,1)){
		FRPRD(x619,1);
		x646=__ABUILTIN_5;
	       }else{
		x646=_APreparedOptions_18(x619);}}
	     }else{
	      FRPRD(x619,1);
	      x646=__ABUILTIN_3;}
	     if(ISTGPRM(x646,1)){
	      CPPRD(x1,2);
	      CPPRD(x632.c2,1);
	      CPCLS(__AOptimCse_29,1);
	      CPCLS(__AOptimCse_42,1);
	      {OBJ x647;OBJ x648;TUP2 x650;OBJ x652;OBJ x653;OBJ x654;OBJ x655;OBJ x656;OBJ x657;
	       x647=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimCse_29,2))(__AOptimCse_29,x1,x632.c2);
	       x648=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_42,1))(__AOptimCse_42,__ABUILTIN_20);
	       x650=_ASeqMapEnv_4(x647,x632.c1,x642);
	       CPPRD(x650.c1,1);
	       x652=_AOptimCse_34(x1,x650.c1,x632.c2);
	       x653=_ASeq_26(x629.c2,x650.c2);
	       if(x_x637){
		RPRD(x637,x654);CHGTG(x654,1);FLD(x654,1)=x652;
	       }else{
		FRPRD(x637,1);PRD(1,1,x654);FLD(x654,1)=x652;}
	       x655=_AAn_3(x648,x654);
	       PRD(1,0,x656);FLD(x656,1)=x655;
	       PRD(4,6,x657);FLD(x657,1)=x618;FLD(x657,2)=x626.c2;FLD(x657,3)=x653;FLD(x657,4)=x656;
	       r=_AOptimCse_33(x1,x650.c1,x657);}
	     }else{
	      if(x_x637){
	       DSPRDF(x637);
	      }else{
	       FRPRD(x637,1);}
	      FREE(x642,1);
	      {OBJ x658;
	       PRD(4,6,x658);FLD(x658,1)=x618;FLD(x658,2)=x626.c2;FLD(x658,3)=x629.c2;FLD(x658,4)=x632.c2;
	       r=_AOptimCse_33(x1,x632.c1,x658);}}}}
	  }else{
	   FRPRD(x619,1);
	   FREE(x637,1);
	   {OBJ x659;
	    PRD(4,6,x659);FLD(x659,1)=x618;FLD(x659,2)=x626.c2;FLD(x659,3)=x629.c2;FLD(x659,4)=x632.c2;
	    r=_AOptimCse_33(x1,x632.c1,x659);}}}
	}else{
	 FRPRD(x619,1);
	 {OBJ x660;
	  PRD(4,6,x660);FLD(x660,1)=x618;FLD(x660,2)=x626.c2;FLD(x660,3)=x629.c2;FLD(x660,4)=x632.c2;
	  r=_AOptimCse_33(x1,x632.c1,x660);}}}}}}
   }else{
    if(ISTGPRD(x3,4)){
     {OBJ x662=FLD(x3,2);OBJ x663=FLD(x3,3);
      COPY(x662,1);CPPRD(x663,1);
      {OBJ x664;TUP3 x666;TUP2 x670;OBJ x672;
       x664=_AAc_50(x3);
       x666=_AOptimCse_32(x1,x2,x662);
       CPPRD(x666.c1,1);
       x670=_AOptimCse_16(x666.c1,x666.c2,x663);
       PRD(3,4,x672);FLD(x672,1)=x664;FLD(x672,2)=x666.c3;FLD(x672,3)=x670.c2;
       r=_AOptimCse_33(x666.c1,x670.c1,x672);}}
    }else{
     if(ISTGPRD(x3,2)){
      {OBJ x674=FLD(x3,2);
       CPPRD(x674,1);
       CPPRD(x3,1);
       {OBJ x675;
	x675=_AAc_50(x3);
	if(ISTGPRD(x674,1)){
	 if(EXPRD(x3,1)){
	  DSPRD(x3);
	 }else{
	  DCPRD(x3,1);}
	 {OBJ x681=FLD1(x1,5);
	  if(EXPRD(x1,1)){
	   FLD1(x1,5)=NIL;DSPRD(x1);
	  }else{
	   COPY(x681,1);
	   FRPRD(x1,1);}
	  CPCLS(__AIde_14,1);
	  {OBJ x682;
	   x682=_AMap_16(__AIde_14,x681,x674);
	   r.c2=_AAcFun_8(x682,x675);
	   r.c1=x2;}}
	}else{
	 if(EXPRD(x674,1)){
	  DSPRDF(x674);
	 }else{
	  DCPRD(x674,1);}
	 FRPRD(x1,1);
	 FREE(x675,1);
	 r.c1=x2;r.c2=x3;}}}
     }else{
      FRPRD(x1,1);
      r.c1=x2;r.c2=x3;}}}}}
 return r;}
extern OBJ _AOptimCse_16_c(OBJ x1,OBJ x2,OBJ x3) /* enter */
{OBJ r;
 {TUP2 t=_AOptimCse_16(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimCse_17(OBJ x1,OBJ x2) /* upd */
{OBJ r;
 {OBJ x33;OBJ x34;OBJ x35;OBJ x36;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,5),1);FLD1(r,5)=x2;
  }else{
   x33=FLD1(x1,1);x34=FLD1(x1,2);x35=FLD1(x1,3);x36=FLD1(x1,4);CPPRD(x33,1);CPPRD(x34,1);COPY(x35,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x33;FLD1(r,2)=x34;FLD1(r,3)=x35;FLD1(r,4)=x36;FLD1(r,5)=x2;}}
 return r;}

extern OBJ _AOptimCse_18(OBJ x1,OBJ x2) /* upd,1 */
{OBJ r;
 {OBJ x10;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FRPRD(FLD1(r,1),1);FLD1(r,1)=x2;
  }else{
   x10=FLD1(x1,2);COPY(x10,1);
   FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x2;FLD1(r,2)=x10;}}
 return r;}

extern OBJ _AOptimCse_19(OBJ x1,OBJ x2) /* upd,2 */
{OBJ r;
 {OBJ x9;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,2),1);FLD1(r,2)=x2;
  }else{
   x9=FLD1(x1,1);CPPRD(x9,1);
   FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x9;FLD1(r,2)=x2;}}
 return r;}

extern TUP2 _AOptimCse_20(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5) /* enterApply */
{TUP2 r;
 for(;;){
  if(ISTGPRD(x4,3)){
   {OBJ x263=FLD(x4,2);OBJ x264=FLD(x4,3);
    CPPRD(x263,1);COPY(x264,1);
    FREE(x3,1);
    {OBJ x265;OBJ x266;
     x265=_AAc_50(x4);
     x266=_ASeq_26(x264,x5);
     x3=x265;x4=x263;x5=x266;continue;}}
  }else{
   {OBJ x269;OBJ x275;
    if(ISTGPRD(x4,2)){
     {OBJ x268=FLD(x4,2);
      CPPRD(x268,1);
      CPPRD(__ABuiltin_15,1);
      x269=_AIde_13(x268,__ABuiltin_15);}
    }else{
     x269=__ABUILTIN_3;}
    if(ISTGPRM(x269,1)){
     {OBJ x272;
      if(ISPRM(x5)){
       HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
      }else{
       {OBJ x270=FLD1(x5,1);
	CPPRD(x270,1);
	x272=x270;}}
      if(ISTGPRD(x272,1)){
       if(EXPRD(x272,1)){
	DSPRD(x272);
       }else{
	DCPRD(x272,1);}
       x275=__ABUILTIN_5;
      }else{
       FRPRD(x272,1);
       x275=__ABUILTIN_3;}}
    }else{
     x275=__ABUILTIN_3;}
    if(ISTGPRM(x275,1)){
     {OBJ x285;OBJ x282;OBJ x276;
      if(ISPRM(x5)){
       HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
      }else{
       {OBJ x283=FLD1(x5,1);
	if(EXPRD(x5,1)){
	 x285=x283;
	 FREE(FLD1(x5,2),1);DSPRDF(x5);
	}else{
	 CPPRD(x283,1);
	 x285=x283;
	 FRPRD(x5,1);}}}
      if(ISPRM(x3)){
       CPPRD(x1,1);
       CPPRD(x2,1);
       CPPRD(x4,1);
       x282=__ASourceAn_28;
      }else{
       {OBJ x278=FLD1(x3,2);
	if(EXPRD(x3,1)){
	 x282=x278;
	 FLD1(x3,2)=NIL;DSPRD(x3);
	}else{
	 COPY(x278,1);
	 x282=x278;
	 FRPRD(x3,1);}
	CPPRD(x1,1);
	CPPRD(x2,1);
	CPPRD(x4,1);}}
      x276=_AOptimCse_34(x1,x2,x4);
      if(ISTGPRD(x285,1)){
       {OBJ x287=FLD(x285,2);
	if(EXPRD(x285,1)){
	 FREE(FLD(x285,1),1);DSPRDF(x285);
	}else{
	 CPPRD(x287,1);
	 FRPRD(x285,1);}
	{OBJ x289;OBJ x292;OBJ x295;OBJ x309;OBJ x296;OBJ x310;OBJ x311;OBJ x312;
	 if(ISPRD(x282)&&(ISTGPRD(x282,1))){
	  x289=__ABUILTIN_5;
	 }else{
	  x289=__ABUILTIN_3;}
	 if(ISPRD(x276)&&(ISTGPRD(x276,3))){
	  x292=__ABUILTIN_5;
	 }else{
	  x292=__ABUILTIN_3;}
	 if(ISTGPRM(x292,1)){
	  if(ISPRD(x276)&&(ISTGPRD(x276,3))){
	   {OBJ x294=FLD(x276,2);
	    if(EXPRD(x276,1)){
	     FREE(FLD(x276,1),1);DSPRDF(x276);
	    }else{
	     COPY(x294,1);
	     FRPRD(x276,1);}
	    PRD(1,1,x295);FLD(x295,1)=x294;}
	  }else{
	   HLT("TypeAn at <unknown> : undefined selection res\'TypeAn:type->type");}
	 }else{
	  FREE(x276,1);
	  x295=__ATypeAn_52;}
	 if(ISTGPRM(x289,1)){
	  FRPRD(x4,1);
	  if(ISPRD(x282)&&(ISTGPRD(x282,2)||ISTGPRD(x282,1))){
	   {OBJ x297=FLD(x282,1);
	    if(EXPRD(x282,1)){
	     x309=x297;
	     DSPRD(x282);
	    }else{
	     x309=x297;
	     FRPRD(x282,1);}}
	  }else{
	   HLT("SourceAn at <unknown> : undefined selection pos\'SourceAn:sourceAn->pos");}
	 }else{
	  FREE(x282,1);
	  {OBJ x301;OBJ x307;
	   x301=_AAc_50(x4);
	   if(ISPRM(x301)){
	    x307=__ASourceAn_28;
	   }else{
	    {OBJ x303=FLD1(x301,2);
	     if(EXPRD(x301,1)){
	      x307=x303;
	      FLD1(x301,2)=NIL;DSPRD(x301);
	     }else{
	      COPY(x303,1);
	      x307=x303;
	      FRPRD(x301,1);}}}
	   if(ISPRD(x307)&&(ISTGPRD(x307,1))){
	    {OBJ x308=FLD(x307,1);
	     if(EXPRD(x307,1)){
	      x309=x308;
	      DSPRDF(x307);
	     }else{
	      x309=x308;
	      FRPRD(x307,1);}}
	   }else{
	    FREE(x307,1);
	    x309=__ASourceAn_30;}}}
	 x296=_AAn_3(__AAn_2,x295);
	 PRD(3,2,x310);FLD(x310,1)=x309;FLD(x310,2)=x287;FLD(x310,3)=__ASourceAn_4;
	 x311=_AAn_5(x296,x310);
	 PRD(1,0,x312);FLD(x312,1)=x311;
	 r=_AOptimCse_16(x1,x2,x312);}}
      }else{
       HLT("Ac at <unknown> : undefined selection repr\'Ac:exp->denotation");}}
    }else{
     CPPRD(x1,3);
     COPY(x3,1);
     CPCLS(__AOptimCse_16,1);
     {OBJ x313;TUP2 x315;TUP2 x318;OBJ x320;TUP2 x322;
      x313=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_16,1))(__AOptimCse_16,x1);
      x315=_AOptimCse_16(x1,x2,x4);
      CPPRD(x315.c2,1);
      x318=_ASeqMapEnv_4(x313,x315.c1,x5);
      COPY(x318.c2,1);
      PRD(3,3,x320);FLD(x320,1)=x3;FLD(x320,2)=x315.c2;FLD(x320,3)=x318.c2;
      x322=_AOptimCse_33(x1,x318.c1,x320);
      if(ISTGPRD(x322.c2,2)){
       {OBJ x325=FLD(x322.c2,2);
	CPPRD(x325,1);
	{OBJ x326=FLD1(x322.c1,1);OBJ x327=FLD1(x322.c1,2);
	 CPPRD(x326,1);COPY(x327,2);
	 CPPRD(x325,1);
	 CPCLS(__AIde_14,1);
	 {OBJ x328;
	  x328=_AMap_20(__AIde_14,x325,x327);
	  if(ISTGPRM(x328,1)){
	   FRPRD(x1,1);
	   FREE(x3,1);
	   FRPRD(x315.c2,1);
	   FREE(x318.c2,1);
	   if(EXPRD(x322.c2,1)){
	    DSPRD(x322.c2);
	   }else{
	    DCPRD(x322.c2,1);}
	   COPY(x327,1);
	   CPCLS(__AIde_14,1);
	   {OBJ x329;OBJ x332;OBJ x335;OBJ x339;
	    x329=_AMap_16(__AIde_14,x327,x325);
	    if(ISTGPRD(x329,2)){
	     x332=__ABUILTIN_5;
	    }else{
	     x332=__ABUILTIN_3;}
	    if(ISTGPRM(x332,1)){
	     if(ISTGPRD(x329,2)){
	      {OBJ x334=FLD(x329,2);
	       CPPRD(x334,1);
	       CPPRD(x326,1);
	       x335=_AEqnSys_8(x326,x334);}
	     }else{
	      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
	    }else{
	     x335=__ABUILTIN_3;}
	    if(ISTGPRM(x335,1)){
	     if(EXPRD(x322.c1,1)){
	      DSPRD(x322.c1);
	     }else{
	      DCPRD(x322.c1,1);}
	     if(ISTGPRD(x329,2)){
	      {OBJ x337=FLD(x329,2);
	       CPPRD(x337,1);
	       r.c2=x329;
	       {
		PRD1(2,r.c1);FLD1(r.c1,2)=x327;
		FLD1(r.c1,1)=_AEqnSys_5(x326,x337);}}
	     }else{
	      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
	    }else{
	     r.c1=x322.c1;r.c2=x329;
	     FRPRD(x326,1);
	     FREE(x327,1);}}
	  }else{
	   FRPRD(x326,1);
	   FREE(x327,1);
	   CPPRD(x1,1);
	   CPPRD(x315.c2,1);
	   COPY(x318.c2,1);
	   CPPRD(x322.c1,1);
	   {OBJ x340;
	    x340=_AOptimCse_22(x1,x322.c1,x315.c2,x318.c2);
	    if(ISTGPRM(x340,1)){
	     if(EXPRD(x322.c2,1)){
	      DSPRD(x322.c2);
	     }else{
	      DCPRD(x322.c2,1);}
	     if(ISTGPRD(x315.c2,2)){
	      {OBJ x342=FLD(x315.c2,2);
	       CPPRD(x342,1);
	       {OBJ x344=FLD1(x1,2);
		CPPRD(x344,1);
		{OBJ x348;TUP2 x350;TUP2 x353;
		 x348=_AAcFun_10(x344,x342);
		 x350=_AOptimCse_24(x1,x3,x315.c2,x318.c2,x348);
		 x353=_AOptimCse_16(x350.c1,x322.c1,x350.c2);
		 {OBJ x355;OBJ x356=FLD1(x353.c1,2);
		  if(EXPRD(x353.c1,1)){
		   r.c2=x353.c2;
		   CPPRD(r.c2,1);
		   CPCLS(__AIde_14,1);
		   {
		    RSOME(x353.c1,r.c1);
		    FLD1(r.c1,2)=_AMap_31(__AIde_14,x325,r.c2,x356);}
		  }else{
		   x355=FLD1(x353.c1,1);CPPRD(x355,1);COPY(x356,1);
		   r.c2=x353.c2;
		   CPPRD(r.c2,1);
		   CPCLS(__AIde_14,1);
		   {
		    FRPRD(x353.c1,1);PRD1(2,r.c1);FLD1(r.c1,1)=x355;
		    FLD1(r.c1,2)=_AMap_31(__AIde_14,x325,r.c2,x356);}}}}}}
	     }else{
	      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
	    }else{
	     r.c1=x322.c1;r.c2=x322.c2;
	     FRPRD(x1,1);
	     FREE(x3,1);
	     FRPRD(x315.c2,1);
	     FREE(x318.c2,1);
	     FRPRD(x325,1);}}}}}}
      }else{
       HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}}}
  break;}
 return r;}
extern OBJ _AOptimCse_20_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* enterApply */
{OBJ r;
 {TUP2 t=_AOptimCse_20(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimCse_21(OBJ x1,OBJ x2) /* abort? */
{OBJ r;
 FRPRD(x1,1);
 if(ISTGPRD(x2,2)){
  {OBJ x10=FLD(x2,2);
   if(EXPRD(x2,1)){
    FREE(FLD(x2,1),1);DSPRDF(x2);
   }else{
    CPPRD(x10,1);
    FRPRD(x2,1);}
   CPPRD(__ABuiltin_15,1);
   r=_AIde_13(x10,__ABuiltin_15);}
 }else{
  FRPRD(x2,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimCse_22(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* shallUnfold? */
{OBJ r;
 FRPRD(x2,1);
 {OBJ x119=FLD1(x1,1);OBJ x120=FLD1(x1,2);
  if(EXPRD(x1,1)){
   CPPRD(x119,1);
   FLD1(x1,1)=NIL;FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x119,2);CPPRD(x120,1);
   FRPRD(x1,1);}
  {OBJ x124;
   x124=_APreparedOptions_8(x119);
   if(ISTGPRM(x124,1)){
    CPPRD(x3,1);
    {OBJ x125;
     x125=_AAcFun_6(x3);
     if(ISTGPRM(x125,1)){
      if(ISTGPRD(x3,2)){
       {OBJ x127=FLD(x3,2);
	if(EXPRD(x3,1)){
	 CPPRD(x127,1);
	 FREE(FLD(x3,1),1);DSPRDF(x3);
	}else{
	 CPPRD(x127,2);
	 FRPRD(x3,1);}
	CPPRD(x120,1);
	{OBJ x128;OBJ x129;OBJ x135;OBJ x139;OBJ x155;
	 x128=_AAcFun_10(x120,x127);
	 CPPRD(x128,1);
	 x129=_AAc_22(x128);
	 if(ISPRM(x129)){
	  x135=__AOptimAn_24;
	 }else{
	  {OBJ x132=FLD1(x129,3);
	   if(EXPRD(x129,1)){
	    x135=x132;
	    FLD1(x129,3)=NIL;DSPRD(x129);
	   }else{
	    COPY(x132,1);
	    x135=x132;
	    FRPRD(x129,1);}}}
	 if(ISPRD(x135)&&(ISTGPRD(x135,1))){
	  x139=__ABUILTIN_5;
	 }else{
	  x139=__ABUILTIN_3;}
	 if(ISTGPRM(x139,1)){
	  if(ISTGPRD(x128,2)){
	   {OBJ x143=FLD(x128,4);
	    if(EXPRD(x128,1)){
	     FLD(x128,4)=NIL;DSPRD(x128);
	    }else{
	     CPPRD(x143,1);
	     FRPRD(x128,1);}
	    {OBJ x148;
	     if(ISTGPRD(x143,4)){
	      {OBJ x146=FLD(x143,3);
	       if(EXPRD(x143,1)){
		FLD(x143,3)=NIL;DSPRD(x143);
	       }else{
		CPPRD(x146,1);
		FRPRD(x143,1);}
	       if(ISTGPRD(x146,0)){
		if(EXPRD(x146,1)){
		 FREE(FLD(x146,1),1);DSPRDF(x146);
		}else{
		 DCPRD(x146,1);}
		x148=__ABUILTIN_3;
	       }else{
		FRPRD(x146,1);
		x148=__ABUILTIN_5;}}
	     }else{
	      FRPRD(x143,1);
	      x148=__ABUILTIN_5;}
	     if(ISTGPRM(x148,1)){
	      {OBJ x149;OBJ x154;
	       x149=_ASeq_52(x4,__ANat_5);
	       if(ISPRD(x135)&&(ISTGPRD(x135,1))){
		{OBJ x151=FLD(x135,2);
		 x154=x151;}
	       }else{
		if(ISPRD(x135)&&(ISTGPRD(x135,2))){
		 {OBJ x153=FLD(x135,1);
		  x154=x153;}
		}else{
		 HLT("OptimAn at <unknown> : undefined selection rank\'OptimAn:optimAn->nat");}}
	       ANat_76(x149,x154,x155);}
	     }else{
	      FREE(x4,1);
	      x155=__ABUILTIN_3;}}}
	  }else{
	   HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}
	 }else{
	  FREE(x4,1);
	  FRPRD(x128,1);
	  x155=__ABUILTIN_3;}
	 if(ISTGPRM(x155,1)){
	  CPCLS(__AOptimAn_8,1);
	  {OBJ x156;OBJ x157;
	   x156=_AOptimAnFun_1(x120,x127);
	   x157=_ASeq_40(__AOptimAn_8,x156);
	   if(ISTGPRM(x157,1)){
	    FRPRD(x119,1);
	    FREE(x135,1);
	    r=__ABUILTIN_5;
	   }else{
	    {OBJ x158;
	     x158=_APreparedOptions_9(x119);
	     if(ISPRD(x135)&&(ISTGPRD(x135,1))){
	      {OBJ x159=FLD(x135,1);
	       if(EXPRD(x135,1)){
		DSPRDF(x135);
	       }else{
		FRPRD(x135,1);}
	       ANat_78(x159,x158,r);}
	     }else{
	      HLT("OptimAn at <unknown> : undefined selection complexity\'OptimAn:optimAn->nat");}}}}
	 }else{
	  FRPRD(x119,1);
	  FRPRD(x120,1);
	  FRPRD(x127,1);
	  FREE(x135,1);
	  r=__ABUILTIN_3;}}}
      }else{
       HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
     }else{
      FRPRD(x3,1);
      FREE(x4,1);
      FRPRD(x119,1);
      FRPRD(x120,1);
      r=__ABUILTIN_3;}}
   }else{
    FRPRD(x3,1);
    FREE(x4,1);
    FRPRD(x119,1);
    FRPRD(x120,1);
    r=__ABUILTIN_3;}}}
 return r;}

extern OBJ _AOptimCse_23(OBJ x1) /* implemented? */
{OBJ r;
 if(ISTGPRD(x1,4)){
  {OBJ x18=FLD(x1,3);
   if(EXPRD(x1,1)){
    FLD(x1,3)=NIL;DSPRD(x1);
   }else{
    CPPRD(x18,1);
    FRPRD(x1,1);}
   if(ISTGPRD(x18,0)){
    if(EXPRD(x18,1)){
     FREE(FLD(x18,1),1);DSPRDF(x18);
    }else{
     DCPRD(x18,1);}
    r=__ABUILTIN_3;
   }else{
    FRPRD(x18,1);
    r=__ABUILTIN_5;}}
 }else{
  FRPRD(x1,1);
  r=__ABUILTIN_5;}
 return r;}

extern TUP2 _AOptimCse_24(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* unfold */
{TUP2 r;
 if(ISTGPRD(x5,2)){
  {OBJ x311=FLD(x5,4);
   CPPRD(x311,1);
   if(ISTGPRD(x311,4)){
    {OBJ x313=FLD(x311,2);OBJ x314=FLD(x311,3);
     COPY(x313,1);CPPRD(x314,1);
     if(EXPRD(x311,1)){
      DSPRD(x311);
     }else{
      DCPRD(x311,1);}
     {OBJ x315;
      x315=_AAc_50(x3);
      {OBJ x316=FLD1(x1,1);OBJ x317=FLD1(x1,2);OBJ x318=FLD1(x1,3);OBJ x319=FLD1(x1,4);OBJ x320=FLD1(x1,5);FLAG x_x1=EXPRD(x1,1);
       if(x_x1){
       }else{
	CPPRD(x316,1);CPPRD(x317,1);COPY(x318,1);COPY(x320,1);}
       {OBJ x326;OBJ x334;OBJ x332;OBJ x338;OBJ x337;OBJ x335;OBJ x343;OBJ x339;OBJ x351;OBJ x359;OBJ x360;OBJ x361;OBJ x362;OBJ x363;OBJ x365;
	if(ISPRM(x2)){
	 x326=__ASourceAn_28;
	}else{
	 {OBJ x322=FLD1(x2,2);
	  if(EXPRD(x2,1)){
	   x326=x322;
	   FLD1(x2,2)=NIL;DSPRD(x2);
	  }else{
	   COPY(x322,1);
	   x326=x322;
	   FRPRD(x2,1);}}}
	if(ISPRD(x326)&&(ISTGPRD(x326,1))){
	 x334=__ABUILTIN_5;
	}else{
	 x334=__ABUILTIN_3;}
	if(ISPRM(x315)){
	 x332=__ATypeAn_52;
	}else{
	 {OBJ x327=FLD1(x315,1);
	  if(EXPRD(x315,1)){
	   x332=x327;
	   FLD1(x315,1)=NIL;DSPRD(x315);
	  }else{
	   COPY(x327,1);
	   x332=x327;
	   FRPRD(x315,1);}}}
	if(ISTGPRM(x334,1)){
	 CPPRD(x316,1);
	 x338=_APreparedOptions_19(x316);
	}else{
	 x338=__ABUILTIN_3;}
	if(ISPRD(x332)&&(ISTGPRD(x332,2))){
	 CPCLS(__AAc_21,1);
	 x337=__ABUILTIN_5;
	}else{
	 CPCLS(__AAc_21,1);
	 x337=__ABUILTIN_3;}
	x335=_ASeqMap_3(__AAc_21,x313);
	if(ISTGPRM(x337,1)){
	 CPPRD(x5,1);
	 {OBJ x340;
	  x340=_ATypeAnFun_4(x5);
	  if(ISPRD(x340)&&(ISTGPRD(x340,7))){
	   if(EXPRD(x340,1)){
	    DSPRD(x340);
	   }else{
	    DCPRD(x340,1);}
	   CPCLS(__AIde_14,1);
	   x343=__ABUILTIN_5;
	  }else{
	   FREE(x340,1);
	   CPCLS(__AIde_14,1);
	   x343=__ABUILTIN_3;}}
	}else{
	 CPCLS(__AIde_14,1);
	 x343=__ABUILTIN_3;}
	x339=_AMap_10(__AIde_14,x320,x335,x4);
	if(x_x1){
	 RSOME(x1,x351);FLD1(x351,5)=x339;
	}else{
	 FRPRD(x1,1);PRD1(5,x351);FLD1(x351,1)=x316;FLD1(x351,2)=x317;FLD1(x351,3)=x318;FLD1(x351,4)=x319;FLD1(x351,5)=x339;}
	if(ISTGPRM(x343,1)){
	 {OBJ x352;
	  x352=_ATypeAnFun_4(x5);
	  if(ISPRD(x352)&&(ISTGPRD(x352,7))){
	   {OBJ x353=FLD(x352,1);
	    if(EXPRD(x352,1)){
	     FREE(FLD(x352,2),1);DSPRDF(x352);
	    }else{
	     COPY(x353,1);
	     FRPRD(x352,1);}
	    if(ISPRD(x332)&&(ISTGPRD(x332,2))){
	     {OBJ x355=FLD(x332,1);
	      if(EXPRD(x332,1)){
	       DSPRDF(x332);
	      }else{
	       COPY(x355,1);
	       FRPRD(x332,1);}
	      CPCLS(__AOptimCse_26,1);
	      CPCLS(__AIde_14,1);
	      COPY(__AIdeMap_3,1);
	      {OBJ x356;
	       x356=_AMap_10(__AIde_14,__AIdeMap_3,x353,x355);
	       x360=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_26,1))(__AOptimCse_26,x356);
	       x359=__ABUILTIN_5;}}
	    }else{
	     HLT("TypeAn at <unknown> : undefined selection subs\'TypeAn:typeAn->seq");}}
	  }else{
	   HLT("TypeAn at <unknown> : undefined selection vars\'TypeAn:type->seq");}}
	}else{
	 if(EXPRD(x5,1)){
	  DSPRD(x5);
	 }else{
	  DCPRD(x5,1);}
	 FREE(x332,1);
	 CPCLS(__AOptimCse_38,1);
	 x359=__ABUILTIN_3;x360=__AOptimCse_38;}
	if(ISTGPRM(x338,1)){
	 {OBJ x348;OBJ x349;
	  if(ISPRD(x326)&&(ISTGPRD(x326,2)||ISTGPRD(x326,1))){
	   {OBJ x344=FLD(x326,1);
	    if(EXPRD(x326,1)){
	     x348=x344;
	     DSPRD(x326);
	    }else{
	     x348=x344;
	     FRPRD(x326,1);}
	    CPCLS(__AOptimCse_25,1);}
	  }else{
	   HLT("SourceAn at <unknown> : undefined selection pos\'SourceAn:sourceAn->pos");}
	  x362=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_25,1))(__AOptimCse_25,x348);
	  x361=__ABUILTIN_5;}
	}else{
	 FREE(x326,1);
	 CPCLS(__AOptimCse_37,1);
	 x361=__ABUILTIN_3;x362=__AOptimCse_37;}
	if(ISTGPRM(x361,1)){
	 x363=__ABUILTIN_5;
	}else{
	 x363=x359;}
	if(ISTGPRM(x363,1)){
	 r.c1=x351;
	 CPCLS(x360,1);
	 CPCLS(__ACompose_4,1);
	 {OBJ x364;
	  x364=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,x360,x362);
	  r.c2=_AAnFun_1(x360,x364,x314);}
	}else{
	 r.c2=x314;r.c1=x351;
	 FRCLS(x360,1);
	 FRCLS(x362,1);}}}}}
   }else{
    HLT("OptimCse at <189,9-14> : missing else in unfold\'OptimCse:ctx**an**exp**seq**dec->ctx**exp");}}
 }else{
  HLT("OptimCse at <189,9-14> : missing else in unfold\'OptimCse:ctx**an**exp**seq**dec->ctx**exp");}
 return r;}
extern OBJ _AOptimCse_24_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* unfold */
{OBJ r;
 {TUP2 t=_AOptimCse_24(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimCse_25(OBJ x1,OBJ x2) /* propPos */
{OBJ r;
 {OBJ x8;
  if(ISPRM(x2)){
   x8=__ASourceAn_28;
  }else{
   {OBJ x4=FLD1(x2,2);
    COPY(x4,1);
    x8=x4;}}
  if(ISPRD(x8)&&(ISTGPRD(x8,2))){
   {OBJ x28;OBJ x29;FLAG x_x8=EXPRD(x8,1);
    if(x_x8){
    }else{
     x28=FLD(x8,2);x29=FLD(x8,3);CPPRD(x28,1);}
    {OBJ x30;
     if(x_x8){
      RPRD(x8,x30);FLD(x30,1)=x1;
     }else{
      FRPRD(x8,1);PRD(3,2,x30);FLD(x30,1)=x1;FLD(x30,2)=x28;FLD(x30,3)=x29;}
     r=_AAn_5(x2,x30);}}
  }else{
   FREE(x8,1);
   {OBJ x31;
    PRDF(1,1,x31);FLD(x31,1)=x1;
    r=_AAn_5(x2,x31);}}}
 return r;}

extern OBJ _AOptimCse_26(OBJ x1,OBJ x2) /* specType */
{OBJ r;
 {OBJ x8;
  if(ISPRM(x2)){
   x8=__ATypeAn_52;
  }else{
   {OBJ x3=FLD1(x2,1);
    COPY(x3,1);
    x8=x3;}}
  if(ISPRD(x8)&&(ISTGPRD(x8,1))){
   {OBJ x26=FLD(x8,1);FLAG x_x8=EXPRD(x8,1);
    if(x_x8){
    }else{
     COPY(x26,1);}
    {OBJ x27;OBJ x28;
     x27=_ATypeAnFun_10(x1,x26);
     if(x_x8){
      RPRD(x8,x28);FLD(x28,1)=x27;
     }else{
      FRPRD(x8,1);PRD(1,1,x28);FLD(x28,1)=x27;}
     r=_AAn_3(x2,x28);}}
  }else{
   if(ISPRD(x8)&&(ISTGPRD(x8,2))){
    {OBJ x29=FLD(x8,1);FLAG x_x8=EXPRD(x8,1);
     if(x_x8){
     }else{
      COPY(x29,1);}
     CPCLS(__ATypeAnFun_10,1);
     {OBJ x30;OBJ x31;OBJ x32;
      x30=(*(OBJ(*)(OBJ,OBJ))METHOD(__ATypeAnFun_10,1))(__ATypeAnFun_10,x1);
      x31=_ASeqMap_3(x30,x29);
      if(x_x8){
       RPRD(x8,x32);FLD(x32,1)=x31;
      }else{
       FRPRD(x8,1);PRD(1,2,x32);FLD(x32,1)=x31;}
      r=_AAn_3(x2,x32);}}
   }else{
    FREE(x1,1);
    FREE(x8,1);
    r=x2;}}}
 return r;}

extern TUP2 _AOptimCse_27(OBJ x1,OBJ x2,OBJ x3) /* enterMatch */
{TUP2 r;
 {OBJ x24;OBJ x25=FLD1(x3,2);OBJ x26=FLD1(x3,3);
  if(EXPRD(x3,1)){
   {TUP3 x28;
    x28=_AOptimCse_32(x1,x2,x25);
    RSOME(x3,r.c2);FLD1(r.c2,2)=x28.c3;
    {TUP2 t=_AOptimCse_16(x28.c1,x28.c2,x26);
     r.c1=t.c1;
     FLD1(r.c2,3)=t.c2;}}
  }else{
   x24=FLD1(x3,1);CPPRD(x24,1);COPY(x25,1);CPPRD(x26,1);
   {TUP3 x28;
    x28=_AOptimCse_32(x1,x2,x25);
    FRPRD(x3,1);PRD1(3,r.c2);FLD1(r.c2,1)=x24;FLD1(r.c2,2)=x28.c3;
    {TUP2 t=_AOptimCse_16(x28.c1,x28.c2,x26);
     r.c1=t.c1;
     FLD1(r.c2,3)=t.c2;}}}}
 return r;}
extern OBJ _AOptimCse_27_c(OBJ x1,OBJ x2,OBJ x3) /* enterMatch */
{OBJ r;
 {TUP2 t=_AOptimCse_27(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimCse_28(OBJ x1,OBJ x2) /* expand */
{OBJ r;
 {OBJ x4=FLD1(x1,2);
  if(EXPRD(x1,1)){
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x4,1);
   FRPRD(x1,1);}
  CPCLS(__ATypeAnFun_9,1);
  {OBJ x8;OBJ x9;
   x8=x4;
   x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__ATypeAnFun_9,1))(__ATypeAnFun_9,x8);
   r=_ATypeAnFun_8(x9,x2);}}
 return r;}

extern TUP2 _AOptimCse_29(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genMatch */
{TUP2 r;
 FRPRD(x1,1);
 if(ISPRD(x4)&&(ISTGPRD(x4,4))){
  {OBJ x25=FLD(x4,1);OBJ x26=FLD(x4,2);
   if(EXPRD(x4,1)){
    DSPRDF(x4);
   }else{
    CPPRD(x25,1);COPY(x26,1);
    FRPRD(x4,1);}
   CPCLS(__AOptimCse_30,1);
   {
    PRD1(3,r.c2);FLD1(r.c2,1)=x25;FLD1(r.c2,3)=x2;
    {TUP2 t=_ASeqMapEnv_4(__AOptimCse_30,x3,x26);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}
 }else{
  HLT("OptimCse at <278,9-16> : missing else in genMatch\'OptimCse:ctx**exp->thr**type->thr**match");}
 return r;}
extern OBJ _AOptimCse_29_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genMatch */
{OBJ r;
 {TUP2 t=_AOptimCse_29(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AOptimCse_30(OBJ x1,OBJ x2) /* genVar */
{TUP2 r;
 {OBJ x3;
  PRD(1,1,x3);FLD(x3,1)=x2;
  {OBJ x15=FLD1(x1,1);OBJ x16;FLAG x_x1=EXPRD(x1,1);
   if(x_x1){
   }else{
    x16=FLD1(x1,2);CPPRD(x15,1);COPY(x16,1);}
   {OBJ x17;TUP2 x19;
    x17=_AAn_3(__AAn_2,x3);
    COPY(x17,1);
    x19=_AEqnSys_3(x15,x17);
    if(x_x1){
     RSOME(x1,r.c1);FLD1(r.c1,1)=x19.c1;
    }else{
     FRPRD(x1,1);PRD1(2,r.c1);FLD1(r.c1,1)=x19.c1;FLD1(r.c1,2)=x16;}
    PRD(2,0,r.c2);FLD(r.c2,1)=x17;FLD(r.c2,2)=x19.c2;}}}
 return r;}
extern OBJ _AOptimCse_30_c(OBJ x1,OBJ x2) /* genVar */
{OBJ r;
 {TUP2 t=_AOptimCse_30(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP3 _AOptimCse_31(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5) /* enterBinds */
{TUP3 r;
 for(;;){
  if(ISPRM(x5)){
   FRPRD(x1,1);
   r.c1=x2;r.c2=x3;r.c3=x4;
  }else{
   {OBJ x109=FLD1(x5,1);OBJ x110=FLD1(x5,2);
    if(EXPRD(x5,1)){
     DSPRDF(x5);
    }else{
     CPPRD(x109,1);COPY(x110,1);
     FRPRD(x5,1);}
    {OBJ x111=FLD1(x2,1);OBJ x112=FLD1(x2,2);OBJ x113=FLD1(x2,3);OBJ x114=FLD1(x2,4);OBJ x115=FLD1(x2,5);FLAG x_x2=EXPRD(x2,1);
     if(x_x2){
     }else{
      CPPRD(x111,1);CPPRD(x112,1);COPY(x113,1);COPY(x115,1);}
     CPPRD(x109,1);
     {OBJ x117;
      x117=_AAc_21(x109);
      if(ISTGPRD(x109,2)){
       {OBJ x121=FLD(x109,4);
	CPPRD(x121,1);
	CPPRD(x1,1);
	CPCLS(__AIde_14,1);
	{TUP2 x123;OBJ x125;OBJ x126;OBJ x127;OBJ x134;OBJ x139;OBJ x142;
	 x123=_AOptimCse_16(x1,x3,x121);
	 CPPRD(x123.c2,2);
	 x125=_AAcFun_5(x123.c2);
	 x126=_AMap_31(__AIde_14,x117,x123.c2,x115);
	 if(x_x2){
	  RSOME(x2,x127);FLD1(x127,5)=x126;
	 }else{
	  FRPRD(x2,1);PRD1(5,x127);FLD1(x127,1)=x111;FLD1(x127,2)=x112;FLD1(x127,3)=x113;FLD1(x127,4)=x114;FLD1(x127,5)=x126;}
	 if(ISTGPRM(x125,1)){
	  {OBJ x128=FLD1(x123.c1,1);OBJ x129=FLD1(x123.c1,2);FLAG x_x123_c1=EXPRD(x123.c1,1);
	   if(x_x123_c1){
	   }else{
	    CPPRD(x128,1);COPY(x129,1);}
	   if(ISTGPRD(x123.c2,2)){
	    {OBJ x131=FLD(x123.c2,2);
	     CPPRD(x131,1);
	     {OBJ x132;OBJ x133;
	      x132=_AAc_22(x109);
	      x133=_AEqnSys_6(x128,x131,x132);
	      if(x_x123_c1){
	       RSOME(x123.c1,x134);FLD1(x134,1)=x133;
	      }else{
	       FRPRD(x123.c1,1);PRD1(2,x134);FLD1(x134,1)=x133;FLD1(x134,2)=x129;}}}
	   }else{
	    HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
	 }else{
	  x134=x123.c1;
	  if(EXPRD(x109,1)){
	   DSPRD(x109);
	  }else{
	   DCPRD(x109,1);}}
	 if(ISTGPRM(x125,1)){
	  if(ISTGPRD(x123.c2,2)){
	   {OBJ x136=FLD(x123.c2,2);
	    CPPRD(x136,1);
	    {OBJ x137=FLD1(x134,1);
	     CPPRD(x137,1);
	     x139=_AEqnSys_8(x137,x136);}}
	  }else{
	   HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
	 }else{
	  x139=__ABUILTIN_3;}
	 if(ISTGPRM(x139,1)){
	  if(ISTGPRD(x123.c2,2)){
	   {OBJ x141=FLD(x123.c2,2);
	    if(EXPRD(x123.c2,1)){
	     FREE(FLD(x123.c2,1),1);DSPRDF(x123.c2);
	    }else{
	     CPPRD(x141,1);
	     FRPRD(x123.c2,1);}
	    CPCLS(__AIde_14,1);
	    x142=_ABSTree_57(__AIde_14,x141,x4);}
	  }else{
	   HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
	 }else{
	  FRPRD(x123.c2,1);
	  x142=x4;}
	 x2=x127;x3=x134;x4=x142;x5=x110;continue;}}
      }else{
       HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}}}}
  break;}
 return r;}
extern OBJ _AOptimCse_31_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* enterBinds */
{OBJ r;
 {TUP3 t=_AOptimCse_31(x1,x2,x3,x4,x5);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern TUP3 _AOptimCse_32(register OBJ x1,register OBJ x2,register OBJ x3) /* enterDecs */
{TUP3 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;OBJ* p3=&r.c3;
 for(;;){
  if(ISPRM(x3)){
   *p1=x1;*p2=x2;*p3=__ASeq_6;
  }else{
   {OBJ x109=FLD1(x3,1);OBJ x110=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
    }else{
     CPPRD(x109,1);COPY(x110,1);}
    {OBJ x111=FLD1(x2,1);OBJ x112=FLD1(x2,2);FLAG x_x2=EXPRD(x2,1);
     if(x_x2){
     }else{
      CPPRD(x111,1);COPY(x112,1);}
     {OBJ x113;OBJ x114;OBJ x115;OBJ x116;OBJ x117=FLD1(x1,5);FLAG x_x1=EXPRD(x1,1);
      if(x_x1){
      }else{
       x113=FLD1(x1,1);x114=FLD1(x1,2);x115=FLD1(x1,3);x116=FLD1(x1,4);CPPRD(x113,1);CPPRD(x114,1);COPY(x115,1);COPY(x117,1);}
      CPPRD(x109,1);
      CPCLS(__AIde_14,1);
      {OBJ x119;OBJ x120;TUP2 x122;OBJ x124;OBJ x125;OBJ x126;OBJ x127;OBJ x128;
       x119=_AAc_21(x109);
       x120=_AAc_22(x109);
       COPY(x120,1);
       x122=_AEqnSys_3(x111,x120);
       CPPRD(x122.c2,1);
       PRD(2,2,x124);FLD(x124,1)=__AAn_2;FLD(x124,2)=x122.c2;
       if(x_x2){
	RSOME(x2,x125);FLD1(x125,1)=x122.c1;
       }else{
	FRPRD(x2,1);PRD1(2,x125);FLD1(x125,1)=x122.c1;FLD1(x125,2)=x112;}
       PRD(2,0,x126);FLD(x126,1)=x120;FLD(x126,2)=x122.c2;
       x127=_AMap_31(__AIde_14,x119,x124,x117);
       if(x_x1){
	RSOME(x1,x128);FLD1(x128,5)=x127;
       }else{
	FRPRD(x1,1);PRD1(5,x128);FLD1(x128,1)=x113;FLD1(x128,2)=x114;FLD1(x128,3)=x115;FLD1(x128,4)=x116;FLD1(x128,5)=x127;}
       if(x_x3){
	RSOME(x3,*p3);FLD1(*p3,1)=x126;
       }else{
	FRPRD(x3,1);PRD1(2,*p3);FLD1(*p3,1)=x126;}
       x1=x128;x2=x125;x3=x110;p3=&FLD1(*p3,2);continue;}}}}}
  break;}
 return r;}
extern OBJ _AOptimCse_32_c(OBJ x1,OBJ x2,OBJ x3) /* enterDecs */
{OBJ r;
 {TUP3 t=_AOptimCse_32(x1,x2,x3);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern TUP2 _AOptimCse_33(OBJ x1,OBJ x2,OBJ x3) /* insert */
{TUP2 r;
 CPPRD(x2,1);
 CPPRD(x3,2);
 {OBJ x7;OBJ x8;
  x7=_AOptimCse_34(x1,x2,x3);
  x8=_AAc_50(x3);
  {OBJ x18=FLD1(x2,1);OBJ x19;
   if(EXPRD(x2,1)){
    {OBJ x20;OBJ x21;TUP2 x23;
     PRD(1,1,x20);FLD(x20,1)=x7;
     x21=_AAn_3(__AAn_2,x20);
     x23=_AEqnSys_4(x18,x3,x21);
     PRD(2,2,r.c2);FLD(r.c2,1)=x8;FLD(r.c2,2)=x23.c2;
     RSOME(x2,r.c1);FLD1(r.c1,1)=x23.c1;}
   }else{
    x19=FLD1(x2,2);CPPRD(x18,1);COPY(x19,1);
    {OBJ x20;OBJ x21;TUP2 x23;
     PRD(1,1,x20);FLD(x20,1)=x7;
     x21=_AAn_3(__AAn_2,x20);
     x23=_AEqnSys_4(x18,x3,x21);
     PRD(2,2,r.c2);FLD(r.c2,1)=x8;FLD(r.c2,2)=x23.c2;
     FRPRD(x2,1);PRD1(2,r.c1);FLD1(r.c1,1)=x23.c1;FLD1(r.c1,2)=x19;}}}}
 return r;}
extern OBJ _AOptimCse_33_c(OBJ x1,OBJ x2,OBJ x3) /* insert */
{OBJ r;
 {TUP2 t=_AOptimCse_33(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimCse_34(OBJ x1,OBJ x2,OBJ x3) /* type */
{OBJ r;
 CPCLS(__AOptimCse_35,1);
 CPCLS(__AOptimCse_36,1);
 CPPRD(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimCse_35,2))(__AOptimCse_35,x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimCse_36,1))(__AOptimCse_36,x1);
  r=_ATypeAnFun_5(x4,x5,x3);}
 return r;}

extern OBJ _AOptimCse_35(OBJ x1,OBJ x2,OBJ x3) /* valTypeAss */
{OBJ r;
 if(ISTGPRD(x3,1)){
  FRPRD(x1,1);
  {OBJ x34=FLD1(x2,1);
   if(EXPRD(x2,1)){
    FREE(FLD1(x2,2),1);DSPRDF(x2);
   }else{
    CPPRD(x34,1);
    FRPRD(x2,1);}
   {OBJ x36;OBJ x42;
    x36=_AEqnSys_10(x34,x3);
    if(ISPRM(x36)){
     x42=__ATypeAn_52;
    }else{
     {OBJ x37=FLD1(x36,1);
      if(EXPRD(x36,1)){
       x42=x37;
       FLD1(x36,1)=NIL;DSPRD(x36);
      }else{
       COPY(x37,1);
       x42=x37;
       FRPRD(x36,1);}}}
    if(ISPRD(x42)&&(ISTGPRD(x42,1))){
     {OBJ x43=FLD(x42,1);
      if(EXPRD(x42,1)){
       r=x43;
       DSPRDF(x42);
      }else{
       COPY(x43,1);
       r=x43;
       FRPRD(x42,1);}}
    }else{
     FREE(x42,1);
     r=__ATypeAn_40;}}}
 }else{
  FRPRD(x2,1);
  {OBJ x47=FLD1(x1,2);
   if(EXPRD(x1,1)){
    FLD1(x1,2)=NIL;DSPRD(x1);
   }else{
    CPPRD(x47,1);
    FRPRD(x1,1);}
   {OBJ x51;
    x51=_AAcFun_10(x47,x3);
    r=_ATypeAnFun_4(x51);}}}
 return r;}

extern OBJ _AOptimCse_36(OBJ x1,OBJ x2) /* typeDecAss */
{OBJ r;
 {OBJ x4=FLD1(x1,2);
  if(EXPRD(x1,1)){
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x4,1);
   FRPRD(x1,1);}
  {OBJ x8;
   x8=x4;
   r=_ATypeAnFun_1(x8,x2);}}
 return r;}

extern OBJ _AOptimCse_37(OBJ x1) /* unfold'37 */
{OBJ r;
 r=x1;
 return r;}

extern OBJ _AOptimCse_38(OBJ x1) /* unfold'38 */
{OBJ r;
 r=x1;
 return r;}

extern OBJ _AOptimCse_39(OBJ x1,OBJ x2) /* enter'39 */
{OBJ r;
 CPCLS(__AAc_43,1);
 CPCLS(__AIde_14,2);
 {OBJ x3;OBJ x4;
  x3=_ASeqMap_3(__AAc_43,x1);
  x4=_ASetByBSTConv_7(__AIde_14,x3);
  r=_ABSTree_61(__AIde_14,x2,x4);}
 return r;}

extern OBJ _AOptimCse_42(OBJ x1) /* enter'42 */
{OBJ r;
 COPY(__AOptimCse_41,1);
 r=_AAn_5(__AAn_2,__AOptimCse_41);
 return r;}



init_AOptimCse()
{
 static int visited=0; if(visited) return; visited=1;
 init_APair();
 init_AIdeMap();
 init_ADenotation();
 init_ASeqMap();
 init_AAc();
 init_ASeqReduce();
 init_APreparedOptions();
 init_ASeqFilter();
 init_AEqnSys();
 init_ACompose();
 init_AOcError();
 init_ASeqMapEnv();
 init_AOcPos();
 init_AAcFun();
 init_AString();
 init_ATypeAnFun();
 init_ASeq();
 init_AOptimAnFun();
 init_AOcOptions();
 init_AAnFun();
 init_ACom();
 init_ABuiltin();
 init_ANat();
 init_AMap();
 init_AVoid();
 init_AMapConv();
 init_AOption();
 init_ASetByBST();
 init_AChar();
 init_ABSTree();
 init_AStream();
 init_ATree();
 init_AFile();
 init_AArray();
 init_AInt();
 init_ABitset();
 init_AIde();
 init_ASetByBSTFilter();
 init_AIdeSet();
 init_ASetByBSTConv();
 init_AAn();
 init_ABSTreeConv();
 init_AFormat();
 init_AFmt();
 init_ATypeAn();
 init_ASourceAn();
 init_AOptimAn();
 init_ATransAn();
 init_APragmaAn();
 init_ANatMap();
 init_AStore();
 init_ASet();
 CLS(5,_AOptimCse_31_c,__AOptimCse_31);
 CLS(2,_AOptimCse_30_c,__AOptimCse_30);
 CLS(4,_AOptimCse_29_c,__AOptimCse_29);
 CLS(2,_AOptimCse_28,__AOptimCse_28);
 CLS(3,_AOptimCse_27_c,__AOptimCse_27);
 CLS(2,_AOptimCse_26,__AOptimCse_26);
 CLS(2,_AOptimCse_25,__AOptimCse_25);
 CLS(5,_AOptimCse_24_c,__AOptimCse_24);
 CLS(1,_AOptimCse_23,__AOptimCse_23);
 CLS(4,_AOptimCse_22,__AOptimCse_22);
 CLS(2,_AOptimCse_21,__AOptimCse_21);
 CLS(5,_AOptimCse_20_c,__AOptimCse_20);
 CLS(2,_AOptimCse_19,__AOptimCse_19);
 CLS(2,_AOptimCse_18,__AOptimCse_18);
 CLS(2,_AOptimCse_17,__AOptimCse_17);
 CLS(3,_AOptimCse_16_c,__AOptimCse_16);
 CLS(1,_AOptimCse_14,__AOptimCse_14);
 CLS(1,_AOptimCse_13,__AOptimCse_13);
 CLS(1,_AOptimCse_12,__AOptimCse_12);
 CLS(1,_AOptimCse_11,__AOptimCse_11);
 LCLS(1,_AOptimCse_42,__AOptimCse_42);
 CLS(1,_AOptimCse_10,__AOptimCse_10);
 CLS(1,_AOptimCse_9,__AOptimCse_9);
 DEN("",__AOptimCse_40);
 CLS(5,_AOptimCse_8,__AOptimCse_8);
 CLS(2,_AOptimCse_39,__AOptimCse_39);
 CLS(1,_AOptimCse_38,__AOptimCse_38);
 CLS(1,_AOptimCse_6,__AOptimCse_6);
 CLS(1,_AOptimCse_37,__AOptimCse_37);
 CLS(1,_AOptimCse_5,__AOptimCse_5);
 CLS(1,_AOptimCse_4,__AOptimCse_4);
 CLS(2,_AOptimCse_36,__AOptimCse_36);
 CLS(2,_AOptimCse_3,__AOptimCse_3);
 CLS(3,_AOptimCse_35,__AOptimCse_35);
 CLS(3,_AOptimCse_34,__AOptimCse_34);
 CLS(3,_AOptimCse_1_c,__AOptimCse_1);
 CLS(3,_AOptimCse_33_c,__AOptimCse_33);
 CLS(3,_AOptimCse_32_c,__AOptimCse_32);
 CPPRD(__AOptimCse_40,1);
 PRD(3,2,__AOptimCse_41);FLD(__AOptimCse_41,1)=__ASourceAn_30;FLD(__AOptimCse_41,2)=__AOptimCse_40;FLD(__AOptimCse_41,3)=__ASourceAn_6;
 CPPRD(__AEqnSys_2,1);
 COPY(__AIdeMap_3,1);
 PRD1(2,__AOptimCse_43);FLD1(__AOptimCse_43,1)=__AEqnSys_2;FLD1(__AOptimCse_43,2)=__AIdeMap_3;}

