

#include "BUILTIN.h"

#include "NatConv.h"
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;

#include "Nat.h"

#include "Denotation.h"
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ __ASourceAn_2;
extern OBJ __ASourceAn_4;
extern OBJ __ASourceAn_6;
extern OBJ _ASeqReduce_4(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_4;
extern OBJ __ATypeAn_52;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern OBJ __AAc_10;
extern OBJ _AAc_21(OBJ);extern OBJ __AAc_21;
extern OBJ _AAc_22(OBJ);extern OBJ __AAc_22;
extern OBJ __AAc_74;
extern OBJ _ASeqZip_4(OBJ,OBJ,OBJ);extern OBJ __ASeqZip_4;
extern TUP2 _ASeqZip_5(OBJ,OBJ);extern OBJ __ASeqZip_5;
extern OBJ _AInterOpal_25(OBJ);extern OBJ __AInterOpal_25;
extern OBJ _AInterOpal_28(OBJ);extern OBJ __AInterOpal_28;
extern OBJ _AInterOpal_30(OBJ);extern OBJ __AInterOpal_30;
extern OBJ _AInterOpal_39(OBJ);extern OBJ __AInterOpal_39;
extern OBJ _AInterOpal_91(OBJ);extern OBJ __AInterOpal_91;
extern OBJ _AInterOpal_130(OBJ);extern OBJ __AInterOpal_130;
extern OBJ _AInterOpal_139(OBJ);extern OBJ __AInterOpal_139;
extern OBJ __ABuiltin_3;
extern OBJ __ABuiltin_12;
extern OBJ _ABuiltin_17(OBJ);extern OBJ __ABuiltin_17;
extern OBJ _ABuiltin_18(OBJ);extern OBJ __ABuiltin_18;
extern OBJ _AInterOpalVars_4(OBJ,OBJ);extern OBJ __AInterOpalVars_4;
extern OBJ _AInterOpalAccess_1(OBJ,OBJ);extern OBJ __AInterOpalAccess_1;
extern OBJ _AInterOpalAccess_2(OBJ,OBJ);extern OBJ __AInterOpalAccess_2;
extern OBJ _AInterOpalAccess_8(OBJ,OBJ);extern OBJ __AInterOpalAccess_8;
extern OBJ _AInterOpalAccess_21(OBJ,OBJ);extern OBJ __AInterOpalAccess_21;
extern OBJ _AInterOpalAccess_27(OBJ,OBJ);extern OBJ __AInterOpalAccess_27;
extern OBJ _AInterOpalAccess_29(OBJ,OBJ);extern OBJ __AInterOpalAccess_29;
extern OBJ _AInterOpalAccess_30(OBJ,OBJ);extern OBJ __AInterOpalAccess_30;
extern OBJ _AInterOpalAccess_31(OBJ);extern OBJ __AInterOpalAccess_31;
extern OBJ _AInterOpalAccess_37(OBJ);extern OBJ __AInterOpalAccess_37;
extern OBJ _AInterOpalAccess_39(OBJ,OBJ);extern OBJ __AInterOpalAccess_39;
extern OBJ _AInterOpalAccess_42(OBJ);extern OBJ __AInterOpalAccess_42;
extern OBJ _AParameterTranslation_4(OBJ);extern OBJ __AParameterTranslation_4;
extern OBJ __ANameTranslation_1;
extern OBJ _ANameTranslation_2(OBJ,OBJ);extern OBJ __ANameTranslation_2;
extern OBJ _ANameTranslation_6(OBJ);extern OBJ __ANameTranslation_6;
extern OBJ _ANameTranslation_7(OBJ);extern OBJ __ANameTranslation_7;
extern OBJ __ASeq_6;
extern OBJ _ASeq_23(OBJ,OBJ);extern OBJ __ASeq_23;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern TUP2 _ASeq_33(OBJ,OBJ);extern OBJ __ASeq_33;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;
extern OBJ __AFctTranslation_1;
extern OBJ _AFctTranslation_3(OBJ,OBJ,OBJ);extern OBJ __AFctTranslation_3;
extern OBJ _AFctTranslation_4(OBJ,OBJ,OBJ);extern OBJ __AFctTranslation_4;
extern OBJ _AIde_13(OBJ,OBJ);extern OBJ __AIde_13;

#include "Real.h"

#include "Array.h"
extern OBJ __AAn_2;
extern OBJ _AAn_3(OBJ,OBJ);extern OBJ __AAn_3;
extern OBJ _AAn_5(OBJ,OBJ);extern OBJ __AAn_5;

#include "Char.h"

#include "Int.h"
extern TUP2 _APair_8(OBJ);extern OBJ __APair_8;
extern OBJ _AExprTranslation_1(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_1; /* exp */
extern OBJ _AExprTranslation_2(OBJ,OBJ,OBJ);OBJ __AExprTranslation_2; /* notImplementedError */
extern OBJ _AExprTranslation_3(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_3; /* undefinedSelectionError */
extern OBJ _AExprTranslation_5(OBJ);OBJ __AExprTranslation_5; /* optSpec */
extern OBJ _AExprTranslation_6(OBJ,OBJ,OBJ);OBJ __AExprTranslation_6; /* optApply */
extern OBJ _AExprTranslation_7(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_7; /* globalNameExp */
extern OBJ _AExprTranslation_8(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_8; /* flattenNtuple */
extern TUP5 _AExprTranslation_9(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_9; /* guard */
extern TUP2 _AExprTranslation_10(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_10; /* bind */
extern OBJ _AExprTranslation_11(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_11; /* bind,1 */
extern OBJ _AExprTranslation_12(OBJ,OBJ);OBJ __AExprTranslation_12; /* bind,2 */
extern OBJ _AExprTranslation_13(OBJ);OBJ __AExprTranslation_13; /* cardinality */
extern TUP2 _AExprTranslation_14(OBJ,OBJ);OBJ __AExprTranslation_14; /* newLocals */
extern OBJ _AExprTranslation_15(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_15; /* localDec */
extern OBJ _AExprTranslation_16(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_16; /* localDecNtype */
extern TUP2 _AExprTranslation_17(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_17; /* localDecsNtypes */
OBJ __AExprTranslation_18; /* nullDec */
extern OBJ _AExprTranslation_19(OBJ,OBJ);OBJ __AExprTranslation_19; /* tupleDeconstrError */
extern OBJ _AExprTranslation_20(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_20; /* message */
extern OBJ _AExprTranslation_21(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_21; /* missingElseError */
extern OBJ _AExprTranslation_23(OBJ,OBJ,OBJ,OBJ);OBJ __AExprTranslation_23; /* notImpl */
extern OBJ _AExprTranslation_24(OBJ,OBJ);OBJ __AExprTranslation_24; /* globalNameExp'24 */
extern OBJ _AExprTranslation_25(OBJ,OBJ);OBJ __AExprTranslation_25; /* globalNameExp'25 */
extern OBJ _AExprTranslation_26(OBJ,OBJ);OBJ __AExprTranslation_26; /* globalNameExp'26 */
extern OBJ _AExprTranslation_27(OBJ);OBJ __AExprTranslation_27; /* cardinality'27 */
OBJ __AExprTranslation_28; /* tupleDeconstrError'28 */
extern OBJ _AExprTranslation_29(OBJ,OBJ);OBJ __AExprTranslation_29; /* flattenNtuple'29 */
extern OBJ _AExprTranslation_30(OBJ,OBJ);OBJ __AExprTranslation_30; /* flattenNtuple'30 */
OBJ __AExprTranslation_31; /* message'31 */
OBJ __AExprTranslation_32; /* message'32 */
OBJ __AExprTranslation_33; /* missingElseError'33 */
OBJ __AExprTranslation_34; /* missingElseError'34 */
extern OBJ _AExprTranslation_35(OBJ,OBJ);OBJ __AExprTranslation_35; /* exp'35 */
extern OBJ _AExprTranslation_36(OBJ,OBJ);OBJ __AExprTranslation_36; /* exp'36 */
OBJ __AExprTranslation_37; /* exp'37 */
OBJ __AExprTranslation_38; /* exp'38 */
OBJ __AExprTranslation_39; /* exp'39 */
extern OBJ _AExprTranslation_40(OBJ);OBJ __AExprTranslation_40; /* exp'40 */
extern OBJ _AExprTranslation_41(OBJ);OBJ __AExprTranslation_41; /* exp'41 */
extern OBJ _AExprTranslation_42(OBJ,OBJ);OBJ __AExprTranslation_42; /* exp'42 */
OBJ __AExprTranslation_43; /* notImpl'43 */
OBJ __AExprTranslation_44; /* undefinedSelectionError'44 */

extern OBJ _AExprTranslation_1(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5,register OBJ x6) /* exp */
{OBJ r;
 for(;;){
  switch(TGPRD(x6)){
   case 5:
    {OBJ x1270=FLD(x6,2);OBJ x1271=FLD(x6,3);
     COPY(x1270,1);CPPRD(x1271,1);
     {OBJ x1272;OBJ x1273;
      x1272=_AInterOpal_91(x6);
      x1273=_ANameTranslation_6(x1272);
      if(ISPRM(x1270)){
       {OBJ x1274;
	x1274=_AExprTranslation_1(x1,x2,x3,x4,x5,x1271);
	{OBJ x1275=FLD1(x1274,1);OBJ x1276=FLD1(x1274,2);OBJ x1277;
	 if(EXPRD(x1274,1)){
	  COPY(__AExprTranslation_37,1);
	  COPY(__AExprTranslation_38,1);
	  {OBJ x1278;OBJ x1279;
	   PRD(2,3,x1278);FLD(x1278,1)=__AExprTranslation_38;FLD(x1278,2)=x1276;
	   PRD(3,4,x1279);FLD(x1279,1)=x1273;FLD(x1279,2)=__AExprTranslation_37;FLD(x1279,3)=x1275;
	   RSOME(x1274,r);FLD1(r,1)=x1279;FLD1(r,2)=x1278;}
	 }else{
	  x1277=FLD1(x1274,3);CPPRD(x1275,1);COPY(x1276,1);
	  COPY(__AExprTranslation_37,1);
	  COPY(__AExprTranslation_38,1);
	  {OBJ x1278;OBJ x1279;
	   PRD(2,3,x1278);FLD(x1278,1)=__AExprTranslation_38;FLD(x1278,2)=x1276;
	   PRD(3,4,x1279);FLD(x1279,1)=x1273;FLD(x1279,2)=__AExprTranslation_37;FLD(x1279,3)=x1275;
	   FRPRD(x1274,1);PRD1(3,r);FLD1(r,1)=x1279;FLD1(r,2)=x1278;FLD1(r,3)=x1277;}}}}
      }else{
       CPPRD(x1,1);
       CPPRD(x2,1);
       CPPRD(x4,1);
       {TUP2 x1283;OBJ x1285;
	x1283=_AExprTranslation_17(x1,x2,x4,x1270);
	x1285=_AExprTranslation_1(x1,x2,x3,x4,x5,x1271);
	{OBJ x1286=FLD1(x1285,1);OBJ x1287=FLD1(x1285,2);OBJ x1288;
	 if(EXPRD(x1285,1)){
	  {OBJ x1289;OBJ x1290;
	   PRD(2,3,x1289);FLD(x1289,1)=x1283.c2;FLD(x1289,2)=x1287;
	   PRD(3,4,x1290);FLD(x1290,1)=x1273;FLD(x1290,2)=x1283.c1;FLD(x1290,3)=x1286;
	   RSOME(x1285,r);FLD1(r,1)=x1290;FLD1(r,2)=x1289;}
	 }else{
	  x1288=FLD1(x1285,3);CPPRD(x1286,1);COPY(x1287,1);
	  {OBJ x1289;OBJ x1290;
	   PRD(2,3,x1289);FLD(x1289,1)=x1283.c2;FLD(x1289,2)=x1287;
	   PRD(3,4,x1290);FLD(x1290,1)=x1273;FLD(x1290,2)=x1283.c1;FLD(x1290,3)=x1286;
	   FRPRD(x1285,1);PRD1(3,r);FLD1(r,1)=x1290;FLD1(r,2)=x1289;FLD1(r,3)=x1288;}}}}}}}break;
   case 6:
    {OBJ x1292=FLD(x6,2);OBJ x1293=FLD(x6,3);
     COPY(x1292,1);CPPRD(x1293,1);
     if(ISPRM(x1292)){
      if(EXPRD(x6,1)){
       DSPRD(x6);
      }else{
       DCPRD(x6,1);}
      x6=x1293;continue;
     }else{
      {OBJ x1294=FLD1(x1292,1);OBJ x1295=FLD1(x1292,2);
       CPPRD(x1294,1);COPY(x1295,1);
       if(EXPRD(x1292,1)){
	DSPRD(x1292);
       }else{
	DCPRD(x1292,1);}
       CPPRD(x1,1);
       CPPRD(x2,1);
       CPPRD(x3,1);
       CPPRD(x4,1);
       {OBJ x1296;OBJ x1298;OBJ x1299;
	x1296=_AInterOpal_91(x6);
	COPY(x1296,1);
	PRD(3,6,x1298);FLD(x1298,1)=x1296;FLD(x1298,2)=x1295;FLD(x1298,3)=x1293;
	x1299=_AExprTranslation_1(x1,x2,x3,x4,x5,x1298);
	{OBJ x1300=FLD1(x1299,1);OBJ x1301=FLD1(x1299,2);OBJ x1302=FLD1(x1299,3);
	 if(EXPRD(x1299,1)){
	  COPY(x1301,1);
	  {TUP2 x1304;
	   x1304=_AExprTranslation_10(x1,x2,x3,x4,x5,x1296,x1294,x1300,x1301);
	   RSOME(x1299,r);FLD1(r,1)=x1304.c1;
	   ANat_73(x1302,x1304.c2,FLD1(r,3));}
	 }else{
	  CPPRD(x1300,1);COPY(x1301,2);
	  {TUP2 x1304;
	   x1304=_AExprTranslation_10(x1,x2,x3,x4,x5,x1296,x1294,x1300,x1301);
	   FRPRD(x1299,1);PRD1(3,r);FLD1(r,1)=x1304.c1;FLD1(r,2)=x1301;
	   ANat_73(x1302,x1304.c2,FLD1(r,3));}}}}}}}break;
   case 4:
    {OBJ x1308=FLD(x6,2);OBJ x1309=FLD(x6,3);
     COPY(x1308,1);COPY(x1309,1);
     if(ISPRM(x1308)){
      if(EXPRD(x6,1)){
       DSPRD(x6);
      }else{
       DCPRD(x6,1);}
      if(ISPRM(x1309)){
       HLT("ExprTranslation at <unknown> : missing else in exp\'ExprTranslation:interOpal**info**name**locSig**nat->expr->triple");
      }else{
       {OBJ x1310=FLD1(x1309,1);
	if(EXPRD(x1309,1)){
	 DSPRDF(x1309);
	}else{
	 CPPRD(x1310,1);
	 FRPRD(x1309,1);}
	x6=x1310;continue;}}
     }else{
      {OBJ x1311=FLD1(x1308,1);OBJ x1312=FLD1(x1308,2);
       CPPRD(x1311,1);COPY(x1312,1);
       {OBJ x1313;
	x1313=_AInterOpal_91(x6);
	if(ISPRM(x1312)){
	 if(ISPRM(x1309)){
	  CPPRD(x1,1);
	  CPPRD(x3,1);
	  CPPRD(__ABuiltin_3,1);
	  {TUP5 x1316;OBJ x1321;OBJ x1322;OBJ x1323;OBJ x1324;
	   x1316=_AExprTranslation_9(x1,x2,x3,x4,x5,x1311);
	   COPY(x1316.c4,1);
	   PRD1(3,x1321);FLD1(x1321,1)=__ABuiltin_3;FLD1(x1321,2)=__ASeq_6;FLD1(x1321,3)=x1316.c3;
	   if(EXPRD(x1308,1)){
	    RSOME(x1308,x1322);FRPRD(FLD1(x1322,1),1);FLD1(x1322,1)=x1321;FREE(FLD1(x1322,2),1);FLD1(x1322,2)=__ASeq_6;
	   }else{
	    DCPRD(x1308,1);PRD1(2,x1322);FLD1(x1322,1)=x1321;FLD1(x1322,2)=__ASeq_6;}
	   x1323=_AExprTranslation_21(x1,x3,x1313,x1316.c4);
	   PRD(4,6,x1324);FLD(x1324,1)=x1316.c1;FLD(x1324,2)=x1316.c2;FLD(x1324,3)=x1322;FLD(x1324,4)=x1323;
	   PRD1(3,r);FLD1(r,1)=x1324;FLD1(r,2)=x1316.c4;FLD1(r,3)=x1316.c5;}
	 }else{
	  CPPRD(x1,1);
	  CPPRD(x2,1);
	  CPPRD(x3,1);
	  CPPRD(x4,1);
	  CPPRD(__ABuiltin_3,1);
	  {OBJ x1326;TUP5 x1327;OBJ x1332;OBJ x1333;OBJ x1334;
	   PRD(3,4,x1326);FLD(x1326,1)=x1313;FLD(x1326,2)=x1312;FLD(x1326,3)=x1309;
	   x1327=_AExprTranslation_9(x1,x2,x3,x4,x5,x1311);
	   PRD1(3,x1332);FLD1(x1332,1)=__ABuiltin_3;FLD1(x1332,2)=__ASeq_6;FLD1(x1332,3)=x1327.c3;
	   if(EXPRD(x1308,1)){
	    RSOME(x1308,x1333);FRPRD(FLD1(x1333,1),1);FLD1(x1333,1)=x1332;FREE(FLD1(x1333,2),1);FLD1(x1333,2)=__ASeq_6;
	   }else{
	    DCPRD(x1308,1);PRD1(2,x1333);FLD1(x1333,1)=x1332;FLD1(x1333,2)=__ASeq_6;}
	   x1334=_AExprTranslation_1(x1,x2,x3,x4,x5,x1326);
	   {OBJ x1335=FLD1(x1334,1);OBJ x1337=FLD1(x1334,3);
	    if(EXPRD(x1334,1)){
	     {OBJ x1338;OBJ x1339;
	      ANat_73(x1327.c5,x1337,x1338);
	      PRD(4,6,x1339);FLD(x1339,1)=x1327.c1;FLD(x1339,2)=x1327.c2;FLD(x1339,3)=x1333;FLD(x1339,4)=x1335;
	      RSOME(x1334,r);FLD1(r,1)=x1339;FREE(FLD1(r,2),1);FLD1(r,2)=x1327.c4;FLD1(r,3)=x1338;}
	    }else{
	     CPPRD(x1335,1);
	     {OBJ x1338;OBJ x1339;
	      ANat_73(x1327.c5,x1337,x1338);
	      PRD(4,6,x1339);FLD(x1339,1)=x1327.c1;FLD(x1339,2)=x1327.c2;FLD(x1339,3)=x1333;FLD(x1339,4)=x1335;
	      FRPRD(x1334,1);PRD1(3,r);FLD1(r,1)=x1339;FLD1(r,2)=x1327.c4;FLD1(r,3)=x1338;}}}}}
	}else{
	 CPPRD(x1,1);
	 CPPRD(x2,1);
	 CPPRD(x3,1);
	 CPPRD(x4,1);
	 CPPRD(__ABuiltin_3,1);
	 {OBJ x1342;TUP5 x1343;OBJ x1348;OBJ x1349;OBJ x1350;
	  PRD(3,4,x1342);FLD(x1342,1)=x1313;FLD(x1342,2)=x1312;FLD(x1342,3)=x1309;
	  x1343=_AExprTranslation_9(x1,x2,x3,x4,x5,x1311);
	  PRD1(3,x1348);FLD1(x1348,1)=__ABuiltin_3;FLD1(x1348,2)=__ASeq_6;FLD1(x1348,3)=x1343.c3;
	  if(EXPRD(x1308,1)){
	   RSOME(x1308,x1349);FRPRD(FLD1(x1349,1),1);FLD1(x1349,1)=x1348;FREE(FLD1(x1349,2),1);FLD1(x1349,2)=__ASeq_6;
	  }else{
	   DCPRD(x1308,1);PRD1(2,x1349);FLD1(x1349,1)=x1348;FLD1(x1349,2)=__ASeq_6;}
	  x1350=_AExprTranslation_1(x1,x2,x3,x4,x5,x1342);
	  {OBJ x1351=FLD1(x1350,1);OBJ x1353=FLD1(x1350,3);
	   if(EXPRD(x1350,1)){
	    {OBJ x1354;
	     PRD(4,6,x1354);FLD(x1354,1)=x1343.c1;FLD(x1354,2)=x1343.c2;FLD(x1354,3)=x1349;FLD(x1354,4)=x1351;
	     RSOME(x1350,r);FLD1(r,1)=x1354;FREE(FLD1(r,2),1);FLD1(r,2)=x1343.c4;
	     ANat_73(x1343.c5,x1353,FLD1(r,3));}
	   }else{
	    CPPRD(x1351,1);
	    {OBJ x1354;
	     PRD(4,6,x1354);FLD(x1354,1)=x1343.c1;FLD(x1354,2)=x1343.c2;FLD(x1354,3)=x1349;FLD(x1354,4)=x1351;
	     FRPRD(x1350,1);PRD1(3,r);FLD1(r,1)=x1354;FLD1(r,2)=x1343.c4;
	     ANat_73(x1343.c5,x1353,FLD1(r,3));}}}}}}}}}break;
   case 1:
    {OBJ x1357=FLD(x6,2);
     CPPRD(x1357,1);
     FRPRD(x1,1);
     FRPRD(x2,1);
     FRPRD(x3,1);
     FRPRD(x4,1);
     COPY(__AExprTranslation_39,1);
     {OBJ x1358;OBJ x1359;OBJ x1360;
      x1358=_AInterOpal_91(x6);
      x1359=_ANameTranslation_6(x1358);
      PRD(2,1,x1360);FLD(x1360,1)=x1359;FLD(x1360,2)=x1357;
      PRD1(3,r);FLD1(r,1)=x1360;FLD1(r,2)=__AExprTranslation_39;FLD1(r,3)=x5;}}break;
   case 2:
    {OBJ x1362=FLD(x6,2);
     COPY(x1362,1);
     {OBJ x1363;
      x1363=_AInterOpal_91(x6);
      if(ISPRM(x1362)){
       FRPRD(x1,1);
       FRPRD(x2,1);
       FRPRD(x3,1);
       FRPRD(x4,1);
       CPCLS(__AExprTranslation_40,1);
       CPCLS(__AExprTranslation_41,1);
       {OBJ x1364;OBJ x1365;OBJ x1366;OBJ x1367;OBJ x1368;
	x1364=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_40,1))(__AExprTranslation_40,__ABUILTIN_20);
	x1365=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_41,1))(__AExprTranslation_41,__ABUILTIN_20);
	x1366=_ANameTranslation_6(x1363);
	PRD(1,1,x1367);FLD(x1367,1)=x1365;
	PRD(2,2,x1368);FLD(x1368,1)=x1366;FLD(x1368,2)=x1364;
	PRD1(3,r);FLD1(r,1)=x1368;FLD1(r,2)=x1367;FLD1(r,3)=x5;}
      }else{
       CPPRD(x1,1);
       CPPRD(x2,1);
       CPPRD(x4,1);
       CPCLS(__AExprTranslation_1,1);
       CPCLS(__AExprTranslation_42,1);
       {OBJ x1371;OBJ x1372;OBJ x1373;
	x1371=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__AExprTranslation_1,5))(__AExprTranslation_1,x1,x2,x3,x4,x5);
	x1372=_ASeqMap_3(x1371,x1362);
	COPY(x1372,1);
	x1373=_ASeqReduce_4(__AExprTranslation_42,x5,x1372);
	r=_AExprTranslation_8(x1,x2,x4,x1373,x1363,__ASeq_6,__ASeq_6,x1372);}}}}break;
   case 0:
    {OBJ x1375=FLD(x6,2);
     CPPRD(x1375,2);
     FRPRD(x3,1);
     CPCLS(__AInterOpal_30,1);
     CPCLS(__AInterOpal_39,1);
     {OBJ x1376;OBJ x1377;OBJ x1380;OBJ x1386;
      x1376=_AInterOpal_91(x6);
      x1377=_ACompose_4(__AInterOpal_30,__AInterOpal_39,x1375);
      if(ISTGPRM(x1377,1)){
       CPPRD(x1,1);
       CPPRD(x1375,1);
       {OBJ x1378;OBJ x1379;
	x1378=_ANameTranslation_2(x1,x1375);
	x1379=_ANameTranslation_6(x1376);
	PRD(2,2,x1380);FLD(x1380,1)=x1379;FLD(x1380,2)=x1378;}
      }else{
       CPPRD(x1,1);
       CPPRD(x2,1);
       CPPRD(x1375,1);
       x1380=_AExprTranslation_7(x1,x2,x1376,x1375);}
      if(ISTGPRM(x1377,1)){
       {OBJ x1381=FLD1(x1375,1);
	if(EXPRD(x1375,1)){
	 DSPRD(x1375);
	}else{
	 FRPRD(x1375,1);}
	{OBJ x1384;
	 x1384=_AInterOpalVars_4(x1381,x4);
	 x1386=_AFctTranslation_3(x1,x2,x1384);}}
      }else{
       FRPRD(x4,1);
       CPPRD(x1,1);
       {OBJ x1385;
	x1385=_AInterOpalAccess_30(x1,x1375);
	x1386=_AFctTranslation_3(x1,x2,x1385);}}
      PRD1(3,r);FLD1(r,1)=x1380;FLD1(r,2)=x1386;FLD1(r,3)=x5;}}break;
   default: 
    {OBJ x1209=FLD(x6,2);OBJ x1210=FLD(x6,3);
     CPPRD(x1209,1);CPPRD(x1210,1);
     CPPRD(x1,1);
     CPPRD(x2,1);
     CPPRD(x3,1);
     CPPRD(x4,1);
     {OBJ x1211;OBJ x1212;
      x1211=_AInterOpal_91(x6);
      x1212=_AExprTranslation_1(x1,x2,x3,x4,x5,x1210);
      {OBJ x1213=FLD1(x1212,1);OBJ x1214=FLD1(x1212,2);OBJ x1215=FLD1(x1212,3);FLAG x_x1212=EXPRD(x1212,1);
       if(x_x1212){
       }else{
	CPPRD(x1213,1);COPY(x1214,1);}
       {OBJ x1216;OBJ x1217;
	x1216=_AExprTranslation_13(x1214);
	ANat_78(x1216,__ANat_8,x1217);
	if(ISTGPRM(x1217,1)){
	 if(x_x1212){
	  DSPRDF(x1212);
	 }else{
	  FRPRD(x1212,1);}
	 {OBJ x1218;OBJ x1219;
	  x1218=_ANameTranslation_6(x1211);
	  x1219=_AExprTranslation_1(x1,x2,x3,x4,x5,x1209);
	  {OBJ x1220=FLD1(x1219,1);OBJ x1221=FLD1(x1219,2);OBJ x1222=FLD1(x1219,3);FLAG x_x1219=EXPRD(x1219,1);
	   if(x_x1219){
	   }else{
	    CPPRD(x1220,1);COPY(x1221,1);}
	   {OBJ x1223;OBJ x1224;
	    PRD1(2,x1223);FLD1(x1223,1)=x1213;FLD1(x1223,2)=__ASeq_6;
	    ANat_73(x1222,x1215,x1224);
	    if(ISPRD(x1221)&&(ISTGPRD(x1221,3))){
	     {OBJ x1226=FLD(x1221,2);
	      if(EXPRD(x1221,1)){
	       FREE(FLD(x1221,1),1);DSPRDF(x1221);
	      }else{
	       COPY(x1226,1);
	       FRPRD(x1221,1);}
	      {OBJ x1227;
	       PRD(3,3,x1227);FLD(x1227,1)=x1218;FLD(x1227,2)=x1220;FLD(x1227,3)=x1223;
	       if(x_x1219){
		RSOME(x1219,r);FLD1(r,1)=x1227;FLD1(r,2)=x1226;FLD1(r,3)=x1224;
	       }else{
		FRPRD(x1219,1);PRD1(3,r);FLD1(r,1)=x1227;FLD1(r,2)=x1226;FLD1(r,3)=x1224;}}}
	    }else{
	     HLT("TypeAn at <unknown> : undefined selection res\'TypeAn:type->type");}}}}
	}else{
	 {OBJ x1228;
	  ANat_81(x1216,__ANat_8,x1228);
	  if(ISTGPRM(x1228,1)){
	   COPY(x1211,1);
	   {OBJ x1229;OBJ x1233;OBJ x1240;
	    x1229=_ANameTranslation_6(x1211);
	    if(ISTGPRD(x1213,3)){
	     x1233=__ABUILTIN_5;
	    }else{
	     x1233=__ABUILTIN_3;}
	    if(ISTGPRM(x1233,1)){
	     if(ISTGPRD(x1213,3)){
	      {OBJ x1235=FLD(x1213,2);
	       CPPRD(x1235,1);
	       if(ISTGPRD(x1235,2)){
		{OBJ x1238=FLD(x1235,2);
		 CPPRD(x1238,1);
		 if(EXPRD(x1235,1)){
		  DSPRD(x1235);
		 }else{
		  DCPRD(x1235,1);}
		 {OBJ x1239;
		  x1239=_ABuiltin_18(x1216);
		  x1240=_AIde_13(x1238,x1239);}}
	       }else{
		FRPRD(x1235,1);
		x1240=__ABUILTIN_3;}}
	     }else{
	      HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}
	    }else{
	     x1240=__ABUILTIN_3;}
	    if(ISTGPRM(x1240,1)){
	     if(x_x1212){
	      DSPRDF(x1212);
	     }else{
	      FRPRD(x1212,1);}
	     FREE(x1211,1);
	     {OBJ x1241;
	      x1241=_AExprTranslation_1(x1,x2,x3,x4,x5,x1209);
	      {OBJ x1242=FLD1(x1241,1);OBJ x1243=FLD1(x1241,2);FLAG x_x1241=EXPRD(x1241,1);
	       if(x_x1241){
	       }else{
		CPPRD(x1242,1);COPY(x1243,1);}
	       if(ISPRD(x1243)&&(ISTGPRD(x1243,3))){
		{OBJ x1246=FLD(x1243,2);
		 if(EXPRD(x1243,1)){
		  FREE(FLD(x1243,1),1);DSPRDF(x1243);
		 }else{
		  COPY(x1246,1);
		  FRPRD(x1243,1);}
		 if(ISTGPRD(x1213,3)){
		  {OBJ x1249;FLAG x_x1213=EXPRD(x1213,1);
		   if(x_x1213){
		   }else{
		    x1249=FLD(x1213,3);COPY(x1249,1);}
		   {OBJ x1250;
		    if(x_x1213){
		     RPRD(x1213,x1250);FREE(FLD(x1250,1),1);FLD(x1250,1)=x1229;FRPRD(FLD(x1250,2),1);FLD(x1250,2)=x1242;
		    }else{
		     FRPRD(x1213,1);PRD(3,3,x1250);FLD(x1250,1)=x1229;FLD(x1250,2)=x1242;FLD(x1250,3)=x1249;}
		    if(x_x1241){
		     RSOME(x1241,r);FLD1(r,1)=x1250;FLD1(r,2)=x1246;FLD1(r,3)=x5;
		    }else{
		     FRPRD(x1241,1);PRD1(3,r);FLD1(r,1)=x1250;FLD1(r,2)=x1246;FLD1(r,3)=x5;}}}
		 }else{
		  HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}}
	       }else{
		HLT("TypeAn at <unknown> : undefined selection res\'TypeAn:type->type");}}}
	    }else{
	     COPY(x1229,1);
	     CPCLS(__AExprTranslation_36,1);
	     {OBJ x1251;TUP2 x1253;OBJ x1255;
	      x1251=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_36,1))(__AExprTranslation_36,x1229);
	      x1253=_AExprTranslation_14(x5,x1216);
	      x1255=_AExprTranslation_1(x1,x2,x3,x4,x5,x1209);
	      {OBJ x1256=FLD1(x1255,1);OBJ x1257=FLD1(x1255,2);FLAG x_x1255=EXPRD(x1255,1);
	       if(x_x1255){
	       }else{
		CPPRD(x1256,1);COPY(x1257,1);}
	       if(ISPRD(x1257)&&(ISTGPRD(x1257,3))){
		{OBJ x1259=FLD(x1257,1);OBJ x1260=FLD(x1257,2);
		 if(EXPRD(x1257,1)){
		  COPY(x1260,1);
		  DSPRDF(x1257);
		 }else{
		  COPY(x1259,1);COPY(x1260,2);
		  FRPRD(x1257,1);}
		 COPY(x1229,1);
		 COPY(x1253.c1,1);
		 CPCLS(__AExprTranslation_35,1);
		 {OBJ x1261;OBJ x1262;OBJ x1263;OBJ x1264;OBJ x1265;OBJ x1266;OBJ x1267;OBJ x1268;
		  x1261=_AExprTranslation_19(x1211,x1260);
		  x1262=_ASeqMap_3(x1251,x1253.c1);
		  x1263=_ASeqZip_4(__AExprTranslation_35,x1253.c1,x1259);
		  x1264=_ABuiltin_18(x1216);
		  PRD(3,3,x1265);FLD(x1265,1)=x1229;FLD(x1265,2)=x1256;FLD(x1265,3)=x1262;
		  if(x_x1255){
		   RSOME(x1255,x1266);FLD1(x1266,1)=x1264;FLD1(x1266,2)=x1263;FLD1(x1266,3)=x1265;
		  }else{
		   FRPRD(x1255,1);PRD1(3,x1266);FLD1(x1266,1)=x1264;FLD1(x1266,2)=x1263;FLD1(x1266,3)=x1265;}
		  PRD1(2,x1267);FLD1(x1267,1)=x1266;FLD1(x1267,2)=__ASeq_6;
		  PRD(4,6,x1268);FLD(x1268,1)=x1229;FLD(x1268,2)=x1213;FLD(x1268,3)=x1267;FLD(x1268,4)=x1261;
		  if(x_x1212){
		   RSOME(x1212,r);FLD1(r,1)=x1268;FLD1(r,2)=x1260;FLD1(r,3)=x1253.c2;
		  }else{
		   FRPRD(x1212,1);PRD1(3,r);FLD1(r,1)=x1268;FLD1(r,2)=x1260;FLD1(r,3)=x1253.c2;}}}
	       }else{
		HLT("TypeAn at <unknown> : undefined selection res\'TypeAn:type->type");}}}}}
	  }else{
	   HLT("ExprTranslation at <147,9-167,40> : missing else in exp\'ExprTranslation:interOpal**info**name**locSig**nat->expr->triple");}}}}}}}}
  break;}
 return r;}

extern OBJ _AExprTranslation_2(OBJ x1,OBJ x2,OBJ x3) /* notImplementedError */
{OBJ r;
 CPPRD(__AAc_74,1);
 r=_AExprTranslation_23(__AAc_74,x1,x2,x3);
 return r;}

extern OBJ _AExprTranslation_3(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* undefinedSelectionError */
{OBJ r;
 CPPRD(__AExprTranslation_34,1);
 CPPRD(__AExprTranslation_44,1);
 COPY(x3,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  PRD(1,1,x6);FLD(x6,1)=x4;
  x7=_AExprTranslation_20(x1,x2,x3,__AExprTranslation_44,__AExprTranslation_34);
  x8=_ANameTranslation_7(x3);
  PRD(3,2,x9);FLD(x9,1)=x8;FLD(x9,2)=x7;FLD(x9,3)=x5;
  x10=_AAn_5(__AAn_2,x9);
  PRD(1,0,r);
  FLD(r,1)=_AAn_3(x10,x6);}
 return r;}

extern OBJ _AExprTranslation_5(OBJ x1) /* optSpec */
{OBJ r;
 if(ISPRM(x1)){
  r=__ATypeAn_52;
 }else{
  PRD(1,2,r);FLD(r,1)=x1;}
 return r;}

extern OBJ _AExprTranslation_6(OBJ x1,OBJ x2,OBJ x3) /* optApply */
{OBJ r;
 if(ISPRM(x3)){
  FREE(x1,1);
  r=x2;
 }else{
  PRD(3,3,r);FLD(r,1)=x1;FLD(r,2)=x2;FLD(r,3)=x3;}
 return r;}

extern OBJ _AExprTranslation_7(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* globalNameExp */
{OBJ r;
 CPCLS(__AInterOpal_28,1);
 CPCLS(__AInterOpal_39,1);
 CPPRD(x1,1);
 CPPRD(x4,2);
 {OBJ x5;OBJ x6;
  x5=_ANameTranslation_2(x1,x4);
  x6=_ACompose_4(__AInterOpal_28,__AInterOpal_39,x4);
  if(ISTGPRM(x6,1)){
   {OBJ x7;OBJ x8;
    x7=_AInterOpalAccess_8(x1,x4);
    x8=_ANameTranslation_6(x3);
    if(ISTGPRM(x7,1)){
     FRPRD(x2,1);
     PRD(2,2,r);FLD(r,1)=x8;FLD(r,2)=x5;
    }else{
     CPPRD(x2,1);
     {OBJ x9;
      x9=_AParameterTranslation_4(x2);
      if(ISTGPRD(x2,0)){
       {OBJ x13=FLD(x2,4);
	if(EXPRD(x2,1)){
	 FLD(x2,4)=NIL;DSPRD(x2);
	}else{
	 COPY(x13,1);
	 FRPRD(x2,1);}
	{OBJ x16;OBJ x19;OBJ x20;OBJ x21;OBJ x22;OBJ x23;
	 x16=x13;
	 if(ISPRM(x9)){
	  COPY(x8,2);
	  CPCLS(__AExprTranslation_24,1);
	  x19=__ATypeAn_52;
	 }else{
	  COPY(x8,2);
	  CPCLS(__AExprTranslation_24,1);
	  PRD(1,2,x19);FLD(x19,1)=x9;}
	 x20=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_24,1))(__AExprTranslation_24,x8);
	 x21=_AAn_3(x8,x19);
	 x22=_ASeqMap_3(x20,x16);
	 PRD(2,2,x23);FLD(x23,1)=x21;FLD(x23,2)=x5;
	 if(ISPRM(x22)){
	  r=x23;
	  FREE(x8,1);
	 }else{
	  PRD(3,3,r);FLD(r,1)=x8;FLD(r,2)=x23;FLD(r,3)=x22;}}}
      }else{
       HLT("ParameterTranslation at <unknown> : undefined selection opParamIdes\'ParameterTranslation:info->seq");}}}}
  }else{
   CPPRD(x4,1);
   CPCLS(__AInterOpal_25,1);
   CPCLS(__AInterOpal_39,1);
   {OBJ x26;
    x26=_ACompose_4(__AInterOpal_25,__AInterOpal_39,x4);
    if(ISTGPRM(x26,1)){
     CPPRD(x1,4);
     CPPRD(x2,1);
     COPY(x3,1);
     CPCLS(__AExprTranslation_7,1);
     CPCLS(__AExprTranslation_25,1);
     CPCLS(__AExprTranslation_26,1);
     CPCLS(__AFctTranslation_4,1);
     {OBJ x27;OBJ x28;OBJ x29;OBJ x30;OBJ x31;OBJ x32;OBJ x33;OBJ x34;OBJ x35;OBJ x36;OBJ x39;OBJ x40;OBJ x41;
      x27=_ANameTranslation_6(x3);
      x28=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AFctTranslation_4,2))(__AFctTranslation_4,x1,x2);
      x29=_AInterOpalAccess_29(x1,x4);
      COPY(x29,1);
      x30=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AExprTranslation_7,3))(__AExprTranslation_7,x1,x2,x3);
      x31=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_25,1))(__AExprTranslation_25,x1);
      x32=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_26,1))(__AExprTranslation_26,x1);
      x33=_ASeqFilter_2(x31,x29);
      x34=_ASeqFilter_2(x32,x29);
      x35=_ASeqMap_3(x28,x33);
      x36=_ASeqMap_3(x30,x34);
      if(ISPRM(x35)){
       COPY(x27,1);
       x39=__ATypeAn_52;
      }else{
       COPY(x27,1);
       PRD(1,2,x39);FLD(x39,1)=x35;}
      x40=_AAn_3(x27,x39);
      PRD(2,2,x41);FLD(x41,1)=x40;FLD(x41,2)=x5;
      if(ISPRM(x36)){
       r=x41;
       FREE(x27,1);
      }else{
       PRD(3,3,r);FLD(r,1)=x27;FLD(r,2)=x41;FLD(r,3)=x36;}}
    }else{
     HLT("ExprTranslation at <76,9-89,37> : missing else in globalNameExp\'ExprTranslation:interOpal**info**pos->name->exp");}}}}
 return r;}

extern OBJ _AExprTranslation_8(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5,register OBJ x6,register OBJ x7,register OBJ x8) /* flattenNtuple */
{OBJ r;
 for(;;){
  if(ISPRM(x8)){
   FRPRD(x1,1);
   FRPRD(x2,1);
   FRPRD(x3,1);
   COPY(x7,2);
   {OBJ x118;OBJ x119;OBJ x120;OBJ x121;OBJ x122;OBJ x123;OBJ x124;OBJ x125;OBJ x126;OBJ x127;
    PRD(1,2,x118);FLD(x118,1)=x7;
    x119=_ANameTranslation_6(x5);
    COPY(x119,1);
    x120=_ASeq_52(x7,__ANat_5);
    x121=_ABuiltin_17(x120);
    x122=_ABuiltin_18(x120);
    x123=_AAn_3(x119,x118);
    PRD(1,1,x124);FLD(x124,1)=x121;
    PRD(2,2,x125);FLD(x125,1)=x123;FLD(x125,2)=x122;
    PRD(2,6,x126);FLD(x126,1)=x124;FLD(x126,2)=x7;
    PRD(3,3,x127);FLD(x127,1)=x119;FLD(x127,2)=x125;FLD(x127,3)=x6;
    PRD1(3,r);FLD1(r,1)=x127;FLD1(r,2)=x126;FLD1(r,3)=x4;}
  }else{
   {OBJ x128=FLD1(x8,1);OBJ x129=FLD1(x8,2);FLAG x_x8=EXPRD(x8,1);
    if(x_x8){
    }else{
     CPPRD(x128,1);COPY(x129,1);}
    {OBJ x131=FLD1(x128,1);OBJ x132=FLD1(x128,2);FLAG x_x128=EXPRD(x128,1);
     if(x_x128){
      COPY(x132,1);
     }else{
      CPPRD(x131,1);COPY(x132,2);}
     {OBJ x134;OBJ x135;
      x134=_AExprTranslation_13(x132);
      ANat_76(x134,__ANat_8,x135);
      if(ISTGPRM(x135,1)){
       if(x_x8){
	DSPRDF(x8);
       }else{
	FRPRD(x8,1);}
       if(x_x128){
	DSPRDF(x128);
       }else{
	FRPRD(x128,1);}
       {OBJ x136;OBJ x137;
	x136=_ASeq_23(x6,x131);
	x137=_ASeq_23(x7,x132);
	x6=x136;x7=x137;x8=x129;continue;}
      }else{
       {OBJ x138;
	ANat_81(x134,__ANat_8,x138);
	if(ISTGPRM(x138,1)){
	 COPY(x5,1);
	 CPCLS(__AExprTranslation_29,1);
	 {OBJ x139;OBJ x140;
	  x139=_ANameTranslation_6(x5);
	  COPY(x139,1);
	  x140=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_29,1))(__AExprTranslation_29,x139);
	  if(ISPRD(x132)&&(ISTGPRD(x132,6))){
	   {OBJ x142=FLD(x132,2);
	    if(EXPRD(x132,1)){
	     COPY(x142,1);
	     FREE(FLD(x132,1),1);DSPRDF(x132);
	    }else{
	     COPY(x142,2);
	     FRPRD(x132,1);}
	    COPY(x5,1);
	    CPCLS(__AExprTranslation_30,1);
	    {OBJ x144;OBJ x145;TUP2 x146;OBJ x148;OBJ x149;OBJ x150;OBJ x151;
	     x144=_ASeq_26(x7,x142);
	     x145=_ABuiltin_18(x134);
	     x146=_AExprTranslation_14(x4,x134);
	     COPY(x146.c1,1);
	     x148=_ASeqMap_3(x140,x146.c1);
	     x149=_ASeq_26(x6,x148);
	     x150=_ASeqZip_4(__AExprTranslation_30,x146.c1,x142);
	     x151=_AExprTranslation_8(x1,x2,x3,x146.c2,x5,x149,x144,x129);
	     {OBJ x152=FLD1(x151,1);OBJ x153=FLD1(x151,2);OBJ x154=FLD1(x151,3);FLAG x_x151=EXPRD(x151,1);
	      if(x_x151){
	       COPY(x153,1);
	      }else{
	       CPPRD(x152,1);COPY(x153,2);}
	      {OBJ x155;OBJ x156;OBJ x157;OBJ x158;
	       x155=_AExprTranslation_19(x5,x153);
	       if(x_x151){
		RSOME(x151,x156);FLD1(x156,1)=x145;FLD1(x156,2)=x150;FLD1(x156,3)=x152;
	       }else{
		FRPRD(x151,1);PRD1(3,x156);FLD1(x156,1)=x145;FLD1(x156,2)=x150;FLD1(x156,3)=x152;}
	       if(x_x8){
		RSOME(x8,x157);FLD1(x157,1)=x156;FLD1(x157,2)=__ASeq_6;
	       }else{
		FRPRD(x8,1);PRD1(2,x157);FLD1(x157,1)=x156;FLD1(x157,2)=__ASeq_6;}
	       PRD(4,6,x158);FLD(x158,1)=x139;FLD(x158,2)=x131;FLD(x158,3)=x157;FLD(x158,4)=x155;
	       if(x_x128){
		RSOME(x128,r);FLD1(r,1)=x158;FLD1(r,2)=x153;FLD1(r,3)=x154;
	       }else{
		FRPRD(x128,1);PRD1(3,r);FLD1(r,1)=x158;FLD1(r,2)=x153;FLD1(r,3)=x154;}}}}}
	  }else{
	   HLT("TypeAn at <unknown> : undefined selection subs\'TypeAn:type->seq");}}
	}else{
	 HLT("ExprTranslation at <122,9-136,31> : missing else in flattenNtuple\'ExprTranslation:interOpal**info**locSig**nat**pos->seq**seq->seq->triple");}}}}}}}
  break;}
 return r;}

extern TUP5 _AExprTranslation_9(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* guard */
{TUP5 r;
 {OBJ x59=FLD1(x6,1);OBJ x60=FLD1(x6,2);OBJ x61=FLD1(x6,3);
  if(EXPRD(x6,1)){
   DSPRDF(x6);
  }else{
   COPY(x59,1);CPPRD(x60,1);CPPRD(x61,1);
   FRPRD(x6,1);}
  CPPRD(x1,1);
  CPPRD(x2,1);
  CPPRD(x3,1);
  CPPRD(x4,1);
  {OBJ x62;OBJ x63;OBJ x64;
   x62=_ANameTranslation_6(x59);
   x63=_AExprTranslation_1(x1,x2,x3,x4,x5,x60);
   x64=_AExprTranslation_1(x1,x2,x3,x4,x5,x61);
   {OBJ x65=FLD1(x64,1);OBJ x66=FLD1(x64,2);OBJ x67=FLD1(x64,3);
    if(EXPRD(x64,1)){
     DSPRDF(x64);
    }else{
     CPPRD(x65,1);COPY(x66,1);
     FRPRD(x64,1);}
    {OBJ x68=FLD1(x63,1);OBJ x70=FLD1(x63,3);
     if(EXPRD(x63,1)){
      r.c1=x62;r.c3=x65;r.c4=x66;r.c2=x68;
      FREE(FLD1(x63,2),1);DSPRDF(x63);
     }else{
      CPPRD(x68,1);
      r.c1=x62;r.c3=x65;r.c4=x66;r.c2=x68;
      FRPRD(x63,1);}
     ANat_73(x70,x67,r.c5);}}}}
 return r;}
extern OBJ _AExprTranslation_9_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* guard */
{OBJ r;
 {TUP5 t=_AExprTranslation_9(x1,x2,x3,x4,x5,x6);
  PRD1(5,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;
  FLD1(r,5)=t.c5;}
 return r;}

extern TUP2 _AExprTranslation_10(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8,OBJ x9) /* bind */
{TUP2 r;
 {OBJ x422=FLD1(x7,1);OBJ x423=FLD1(x7,2);OBJ x424=FLD1(x7,3);OBJ x425=FLD1(x7,4);FLAG x_x7=EXPRD(x7,1);
  if(x_x7){
  }else{
   COPY(x422,1);CPPRD(x423,1);COPY(x424,1);CPPRD(x425,1);}
  if(ISTGPRD(x423,5)){
   {OBJ x427=FLD(x423,2);
    COPY(x427,1);
    if(ISPRM(x424)){
     if(ISTGPRD(x425,2)){
      {OBJ x429=FLD(x425,2);
       COPY(x429,1);
       if(ISPRM(x429)){
	if(x_x7){
	 DSPRDF(x7);
	}else{
	 FRPRD(x7,1);}
	FREE(x422,1);
	FREE(x427,1);
	CPPRD(x1,1);
	CPPRD(x2,1);
	CPPRD(x4,1);
	{OBJ x463;
	 x463=_AExprTranslation_1(x1,x2,x3,x4,x5,x425);
	 {OBJ x464=FLD1(x463,1);OBJ x466=FLD1(x463,3);
	  if(EXPRD(x463,1)){
	   r.c2=x466;
	   FREE(FLD1(x463,2),1);DSPRDF(x463);
	  }else{
	   CPPRD(x464,1);
	   r.c2=x466;
	   FRPRD(x463,1);}
	  r.c1=_AExprTranslation_11(x1,x2,x4,x6,x423,x464,x8,x9);}}
       }else{
	{OBJ x430=FLD1(x429,1);OBJ x431=FLD1(x429,2);
	 CPPRD(x430,1);COPY(x431,2);
	 if(EXPRD(x429,1)){
	  DSPRD(x429);
	 }else{
	  DCPRD(x429,1);}
	 CPPRD(x1,1);
	 CPPRD(x2,1);
	 CPPRD(x3,1);
	 CPPRD(x4,1);
	 {OBJ x432;OBJ x434;OBJ x435;OBJ x436;
	  x432=_AInterOpal_130(x423);
	  x434=_ASeq_52(x431,__ANat_5);
	  x435=_AExprTranslation_1(x1,x2,x3,x4,x5,x430);
	  ANat_76(x434,__ANat_8,x436);
	  {OBJ x437=FLD1(x435,1);OBJ x438=FLD1(x435,2);OBJ x439=FLD1(x435,3);
	   if(EXPRD(x435,1)){
	    DSPRDF(x435);
	   }else{
	    CPPRD(x437,1);COPY(x438,1);
	    FRPRD(x435,1);}
	   {OBJ x444;OBJ x440;OBJ x446;OBJ x447;OBJ x448;OBJ x449;OBJ x450;OBJ x451;OBJ x454;OBJ x457;OBJ x458;OBJ x460;OBJ x461;OBJ x462;
	    if(ISTGPRM(x436,1)){
	     if(EXPRD(x425,1)){
	      DSPRD(x425);
	     }else{
	      DCPRD(x425,1);}
	     if(ISPRM(x431)){
	      HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	     }else{
	      {OBJ x441=FLD1(x431,1);
	       if(EXPRD(x431,1)){
		x444=x441;
		FREE(FLD1(x431,2),1);DSPRDF(x431);
	       }else{
		CPPRD(x441,1);
		x444=x441;
		FRPRD(x431,1);}}}
	    }else{
	     {OBJ x443;
	      x443=_AInterOpal_91(x425);
	      PRD(2,2,x444);FLD(x444,1)=x443;FLD(x444,2)=x431;}}
	    x440=_AExprTranslation_13(x438);
	    {TUP2 t=_ASeq_33(x440,x427);
	     x446=t.c1;
	     x447=t.c2;}
	    COPY(x446,1);
	    COPY(x447,1);
	    x448=_ASeq_52(x446,__ANat_5);
	    x449=_ASeq_52(x447,__ANat_5);
	    ANat_76(x448,__ANat_8,x450);
	    ANat_76(x449,__ANat_8,x451);
	    if(ISTGPRM(x451,1)){
	     if(ISPRM(x447)){
	      HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	     }else{
	      {OBJ x452=FLD1(x447,1);
	       if(EXPRD(x447,1)){
		x454=x452;
		FREE(FLD1(x447,2),1);DSPRDF(x447);
	       }else{
		CPPRD(x452,1);
		x454=x452;
		FRPRD(x447,1);}}}
	    }else{
	     COPY(x432,1);
	     PRD(2,5,x454);FLD(x454,1)=x432;FLD(x454,2)=x447;}
	    if(ISTGPRM(x450,1)){
	     FREE(x432,1);
	     if(ISPRM(x446)){
	      HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	     }else{
	      {OBJ x455=FLD1(x446,1);
	       if(EXPRD(x446,1)){
		x457=x455;
		FREE(FLD1(x446,2),1);DSPRDF(x446);
	       }else{
		CPPRD(x455,1);
		x457=x455;
		FRPRD(x446,1);}
	       CPPRD(x1,1);
	       CPPRD(x2,1);
	       CPPRD(x4,1);
	       COPY(x6,1);
	       COPY(x9,1);}}
	    }else{
	     CPPRD(x1,1);
	     CPPRD(x2,1);
	     CPPRD(x4,1);
	     COPY(x6,1);
	     COPY(x9,1);
	     PRD(2,5,x457);FLD(x457,1)=x432;FLD(x457,2)=x446;}
	    if(x_x7){
	     RSOME(x7,x458);FLD1(x458,2)=x454;FLD1(x458,3)=__ASeq_6;FLD1(x458,4)=x444;
	    }else{
	     FRPRD(x7,1);PRD1(4,x458);FLD1(x458,1)=x422;FLD1(x458,2)=x454;FLD1(x458,3)=__ASeq_6;FLD1(x458,4)=x444;}
	    {TUP2 t=_AExprTranslation_10(x1,x2,x3,x4,x439,x6,x458,x8,x9);
	     x460=t.c1;
	     r.c2=t.c2;}
	    r.c1=_AExprTranslation_11(x1,x2,x4,x6,x457,x437,x460,x9);}}}}}}
     }else{
      if(x_x7){
       DSPRDF(x7);
      }else{
       FRPRD(x7,1);}
      FREE(x422,1);
      FREE(x427,1);
      CPPRD(x1,1);
      CPPRD(x2,1);
      CPPRD(x4,1);
      {OBJ x468;
       x468=_AExprTranslation_1(x1,x2,x3,x4,x5,x425);
       {OBJ x469=FLD1(x468,1);OBJ x471=FLD1(x468,3);
	if(EXPRD(x468,1)){
	 r.c2=x471;
	 FREE(FLD1(x468,2),1);DSPRDF(x468);
	}else{
	 CPPRD(x469,1);
	 r.c2=x471;
	 FRPRD(x468,1);}
	r.c1=_AExprTranslation_11(x1,x2,x4,x6,x423,x469,x8,x9);}}}
    }else{
     if(x_x7){
      DSPRDF(x7);
     }else{
      FRPRD(x7,1);}
     if(EXPRD(x424,1)){
      DSPRD(x424);
     }else{
      DCPRD(x424,1);}
     FREE(x422,1);
     FREE(x427,1);
     CPPRD(x1,1);
     CPPRD(x2,1);
     CPPRD(x4,1);
     {OBJ x475;
      x475=_AExprTranslation_1(x1,x2,x3,x4,x5,x425);
      {OBJ x476=FLD1(x475,1);OBJ x478=FLD1(x475,3);
       if(EXPRD(x475,1)){
	r.c2=x478;
	FREE(FLD1(x475,2),1);DSPRDF(x475);
       }else{
	CPPRD(x476,1);
	r.c2=x478;
	FRPRD(x475,1);}
       r.c1=_AExprTranslation_11(x1,x2,x4,x6,x423,x476,x8,x9);}}}}
  }else{
   if(x_x7){
    DSPRDF(x7);
   }else{
    FRPRD(x7,1);}
   FREE(x422,1);
   FREE(x424,1);
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPPRD(x4,1);
   {OBJ x480;
    x480=_AExprTranslation_1(x1,x2,x3,x4,x5,x425);
    {OBJ x481=FLD1(x480,1);OBJ x483=FLD1(x480,3);
     if(EXPRD(x480,1)){
      r.c2=x483;
      FREE(FLD1(x480,2),1);DSPRDF(x480);
     }else{
      CPPRD(x481,1);
      r.c2=x483;
      FRPRD(x480,1);}
     r.c1=_AExprTranslation_11(x1,x2,x4,x6,x423,x481,x8,x9);}}}}
 return r;}
extern OBJ _AExprTranslation_10_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8,OBJ x9) /* bind */
{OBJ r;
 {TUP2 t=_AExprTranslation_10(x1,x2,x3,x4,x5,x6,x7,x8,x9);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AExprTranslation_11(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* bind,1 */
{OBJ r;
 if(ISTGPRD(x5,2)){
  {OBJ x54=FLD(x5,2);
   if(EXPRD(x5,1)){
    FREE(FLD(x5,1),1);DSPRDF(x5);
   }else{
    CPPRD(x54,1);
    FRPRD(x5,1);}
   FREE(x8,1);
   {OBJ x55;OBJ x56;
    x55=_ANameTranslation_6(x4);
    x56=_AExprTranslation_16(x1,x2,x3,x54);
    {OBJ x57=FLD1(x56,1);FLAG x_x56=EXPRD(x56,1);
     if(x_x56){
     }else{
      CPPRD(x57,1);}
     {OBJ x59;OBJ x60;
      x59=_AExprTranslation_12(x57,x6);
      if(x_x56){
       RSOME(x56,x60);FLD1(x60,1)=x59;FREE(FLD1(x60,2),1);FLD1(x60,2)=__ASeq_6;
      }else{
       FRPRD(x56,1);PRD1(2,x60);FLD1(x60,1)=x59;FLD1(x60,2)=__ASeq_6;}
      PRD(3,5,r);FLD(r,1)=x55;FLD(r,2)=x60;FLD(r,3)=x7;}}}}
 }else{
  if(ISTGPRD(x5,5)){
   {OBJ x62=FLD(x5,2);
    if(EXPRD(x5,1)){
     FREE(FLD(x5,1),1);DSPRDF(x5);
    }else{
     COPY(x62,1);
     FRPRD(x5,1);}
    COPY(x4,1);
    CPCLS(__AInterOpal_139,1);
    {OBJ x63;OBJ x64;OBJ x65;TUP2 x67;OBJ x69;OBJ x70;OBJ x71;OBJ x72;
     x63=_ANameTranslation_6(x4);
     x64=_AExprTranslation_19(x4,x8);
     x65=_ASeqMap_3(__AInterOpal_139,x62);
     x67=_AExprTranslation_17(x1,x2,x3,x65);
     x69=_ASeq_52(x67.c2,__ANat_5);
     x70=_ABuiltin_18(x69);
     PRD1(3,x71);FLD1(x71,1)=x70;FLD1(x71,2)=x67.c1;FLD1(x71,3)=x7;
     PRD1(2,x72);FLD1(x72,1)=x71;FLD1(x72,2)=__ASeq_6;
     PRD(4,6,r);FLD(r,1)=x63;FLD(r,2)=x6;FLD(r,3)=x72;FLD(r,4)=x64;}}
  }else{
   HLT("ExprTranslation at <252,5-8> : missing else in bind\'ExprTranslation:interOpal**info**locSig->pos**pattern**exp**exp**type->exp");}}
 return r;}

extern OBJ _AExprTranslation_12(OBJ x1,OBJ x2) /* bind,2 */
{OBJ r;
 if(ISTGPRD(x1,0)){
  CPPRD(x1,1);
  {OBJ x10;
   x10=_AAc_21(x1);
   PRD(4,2,r);FLD(r,2)=x10;FLD(r,3)=__AAc_10;FLD(r,4)=x2;
   FLD(r,1)=_AAc_22(x1);}
 }else{
  HLT("ExprTranslation at <265,5-8> : missing else in bind\'ExprTranslation:dec**exp->dec");}
 return r;}

extern OBJ _AExprTranslation_13(OBJ x1) /* cardinality */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  {OBJ x40=FLD(x1,1);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    CPPRD(x40,1);
    FRPRD(x1,1);}
   CPCLS(__AExprTranslation_27,1);
   {OBJ x41;OBJ x42;
    x41=(*(OBJ(*)(OBJ,OBJ))METHOD(__AExprTranslation_27,1))(__AExprTranslation_27,__ABUILTIN_20);
    x42=_AIde_13(x40,x41);
    if(ISTGPRM(x42,1)){
     r=__ANat_5;
    }else{
     r=__ANat_8;}}}
 }else{
  if(ISPRD(x1)&&(ISTGPRD(x1,6))){
   {OBJ x43=FLD(x1,1);OBJ x44=FLD(x1,2);
    if(EXPRD(x1,1)){
     DSPRDF(x1);
    }else{
     COPY(x43,1);COPY(x44,1);
     FRPRD(x1,1);}
    if(ISPRD(x43)&&(ISTGPRD(x43,1))){
     {OBJ x45=FLD(x43,1);
      if(EXPRD(x43,1)){
       DSPRDF(x43);
      }else{
       CPPRD(x45,1);
       FRPRD(x43,1);}
      {OBJ x46;OBJ x47;OBJ x48;
       x46=_ASeq_52(x44,__ANat_5);
       x47=_ABuiltin_17(x46);
       x48=_AIde_13(x45,x47);
       if(ISTGPRM(x48,1)){
	r=x46;
       }else{
	r=__ANat_8;}}}
    }else{
     FREE(x43,1);
     FREE(x44,1);
     r=__ANat_8;}}
  }else{
   FREE(x1,1);
   r=__ANat_8;}}
 return r;}

extern TUP2 _AExprTranslation_14(register OBJ x1,register OBJ x2) /* newLocals */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  {OBJ x3;
   ANat_6(x2,x3);
   if(ISTGPRM(x3,1)){
    *p1=__ASeq_6;*p2=x1;
   }else{
    {OBJ x4;
     ANat_3(x2,x4);
     if(ISTGPRM(x4,1)){
      {OBJ x5;OBJ x6;OBJ x7;
       ANat_4(x2,x5);
       ANat_2(x1,x6);
       PRDF(1,1,x7);FLD(x7,1)=x1;
       PRD1(2,*p1);FLD1(*p1,1)=x7;
       x1=x6;x2=x5;p1=&FLD1(*p1,2);continue;}
     }else{
      HLT("ExprTranslation at <279,5-13> : missing else in newLocals\'ExprTranslation:nat**nat->seq**nat");}}}}
  break;}
 return r;}
extern OBJ _AExprTranslation_14_c(OBJ x1,OBJ x2) /* newLocals */
{OBJ r;
 {TUP2 t=_AExprTranslation_14(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AExprTranslation_15(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* localDec */
{OBJ r;
 {OBJ x5;
  x5=_AExprTranslation_16(x1,x2,x3,x4);
  {OBJ x6=FLD1(x5,1);
   if(EXPRD(x5,1)){
    r=x6;
    FREE(FLD1(x5,2),1);DSPRDF(x5);
   }else{
    CPPRD(x6,1);
    r=x6;
    FRPRD(x5,1);}}}
 return r;}

extern OBJ _AExprTranslation_16(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* localDecNtype */
{OBJ r;
 FRPRD(x3,1);
 {OBJ x28=FLD1(x4,2);OBJ x29=FLD1(x4,3);OBJ x30=FLD1(x4,4);
  if(EXPRD(x4,1)){
   FREE(FLD1(x4,1),1);DSPRDF(x4);
  }else{
   CPPRD(x29,1);CPPRD(x30,1);
   FRPRD(x4,1);}
  {OBJ x31;OBJ x32;OBJ x33;OBJ x34;OBJ x35;OBJ x36;OBJ x37;
   PRDF(1,1,x31);FLD(x31,1)=x28;
   PRD(1,3,x32);FLD(x32,1)=x29;
   x33=_AFctTranslation_3(x1,x2,x30);
   COPY(x33,1);
   PRD(1,1,x34);FLD(x34,1)=x33;
   x35=_AAn_3(__AAn_2,x34);
   x36=_AAn_5(x35,x32);
   PRD(2,0,x37);FLD(x37,1)=x36;FLD(x37,2)=x31;
   PRD1(2,r);FLD1(r,1)=x37;FLD1(r,2)=x33;}}
 return r;}

extern TUP2 _AExprTranslation_17(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* localDecsNtypes */
{TUP2 r;
 CPCLS(__AExprTranslation_16,1);
 CPCLS(__APair_8,1);
 {OBJ x5;OBJ x6;
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AExprTranslation_16,3))(__AExprTranslation_16,x1,x2,x3);
  x6=_ASeqMap_3(x5,x4);
  r=_ASeqZip_5(__APair_8,x6);}
 return r;}
extern OBJ _AExprTranslation_17_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* localDecsNtypes */
{OBJ r;
 {TUP2 t=_AExprTranslation_17(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AExprTranslation_19(OBJ x1,OBJ x2) /* tupleDeconstrError */
{OBJ r;
 CPPRD(__AExprTranslation_28,1);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;
  PRD(1,1,x3);FLD(x3,1)=x2;
  x4=_ANameTranslation_7(x1);
  PRD(3,2,x5);FLD(x5,1)=x4;FLD(x5,2)=__AExprTranslation_28;FLD(x5,3)=__ASourceAn_6;
  x6=_AAn_5(__AAn_2,x5);
  PRD(1,0,r);
  FLD(r,1)=_AAn_3(x6,x3);}
 return r;}

extern OBJ _AExprTranslation_20(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* message */
{OBJ r;
 CPPRD(__AExprTranslation_31,1);
 CPPRD(__AExprTranslation_32,1);
 CPPRD(x1,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;
  x6=_AInterOpalAccess_37(x1);
  x7=_AInterOpalAccess_42(x3);
  x8=_AInterOpalAccess_39(x1,x2);
  ADenotation_4(x8,x5,x9);
  ADenotation_4(x4,x9,x10);
  ADenotation_4(__AExprTranslation_31,x10,x11);
  ADenotation_4(x7,x11,x12);
  ADenotation_4(__AExprTranslation_32,x12,x13);
  ADenotation_4(x6,x13,r);}
 return r;}

extern OBJ _AExprTranslation_21(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* missingElseError */
{OBJ r;
 CPPRD(__AExprTranslation_33,1);
 CPPRD(__AExprTranslation_34,1);
 COPY(x3,1);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x8;OBJ x9;
  PRD(1,1,x5);FLD(x5,1)=x4;
  x6=_AExprTranslation_20(x1,x2,x3,__AExprTranslation_33,__AExprTranslation_34);
  x7=_ANameTranslation_7(x3);
  PRD(3,2,x8);FLD(x8,1)=x7;FLD(x8,2)=x6;FLD(x8,3)=__ASourceAn_4;
  x9=_AAn_5(__AAn_2,x8);
  PRD(1,0,r);
  FLD(r,1)=_AAn_3(x9,x5);}
 return r;}

extern OBJ _AExprTranslation_23(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* notImpl */
{OBJ r;
 CPPRD(__AExprTranslation_34,1);
 CPPRD(__AExprTranslation_43,1);
 CPPRD(x2,3);
 CPPRD(x4,2);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;OBJ x14;
  x5=_AInterOpalAccess_27(x2,x4);
  x6=_AInterOpalAccess_21(x2,x4);
  x7=_AFctTranslation_3(x2,x3,x5);
  x8=_AInterOpalAccess_31(x6);
  COPY(x8,1);
  PRD(1,1,x9);FLD(x9,1)=x7;
  x10=_AExprTranslation_20(x2,x4,x8,__AExprTranslation_34,__AExprTranslation_43);
  x11=_ANameTranslation_7(x8);
  PRD(3,2,x12);FLD(x12,1)=x11;FLD(x12,2)=x10;FLD(x12,3)=__ASourceAn_2;
  x13=_AAn_5(__AAn_2,x12);
  x14=_AAn_3(x13,x9);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x14);}
 return r;}

extern OBJ _AExprTranslation_24(OBJ x1,OBJ x2) /* globalNameExp'24 */
{OBJ r;
 PRD(2,2,r);FLD(r,1)=x1;FLD(r,2)=x2;
 return r;}

extern OBJ _AExprTranslation_25(OBJ x1,OBJ x2) /* globalNameExp'25 */
{OBJ r;
 r=_AInterOpalAccess_1(x1,x2);
 return r;}

extern OBJ _AExprTranslation_26(OBJ x1,OBJ x2) /* globalNameExp'26 */
{OBJ r;
 r=_AInterOpalAccess_2(x1,x2);
 return r;}

extern OBJ _AExprTranslation_27(OBJ x1) /* cardinality'27 */
{OBJ r;
 r=_ABuiltin_17(__ANat_5);
 return r;}

extern OBJ _AExprTranslation_29(OBJ x1,OBJ x2) /* flattenNtuple'29 */
{OBJ r;
 PRD(2,2,r);FLD(r,1)=x1;FLD(r,2)=x2;
 return r;}

extern OBJ _AExprTranslation_30(OBJ x1,OBJ x2) /* flattenNtuple'30 */
{OBJ r;
 {OBJ x3;
  PRD(1,1,x3);FLD(x3,1)=x2;
  PRD(2,0,r);FLD(r,2)=x1;
  FLD(r,1)=_AAn_3(__AAn_2,x3);}
 return r;}

extern OBJ _AExprTranslation_35(OBJ x1,OBJ x2) /* exp'35 */
{OBJ r;
 {OBJ x3;
  PRD(1,1,x3);FLD(x3,1)=x2;
  PRD(2,0,r);FLD(r,2)=x1;
  FLD(r,1)=_AAn_3(__AAn_2,x3);}
 return r;}

extern OBJ _AExprTranslation_36(OBJ x1,OBJ x2) /* exp'36 */
{OBJ r;
 PRD(2,2,r);FLD(r,1)=x1;FLD(r,2)=x2;
 return r;}

extern OBJ _AExprTranslation_40(OBJ x1) /* exp'40 */
{OBJ r;
 r=_ABuiltin_18(__ANat_5);
 return r;}

extern OBJ _AExprTranslation_41(OBJ x1) /* exp'41 */
{OBJ r;
 r=_ABuiltin_17(__ANat_5);
 return r;}

extern OBJ _AExprTranslation_42(OBJ x1,OBJ x2) /* exp'42 */
{OBJ r;
 {OBJ x5=FLD1(x1,3);
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   FRPRD(x1,1);}
  {OBJ x6;
   x6=x5;
   ANat_73(x6,x2,r);}}
 return r;}

static void ___AExprTranslation_18()
{
 CPPRD(__ANameTranslation_1,1);
 COPY(__AFctTranslation_1,1);
 {OBJ x1;
  PRD(1,1,x1);FLD(x1,1)=__AFctTranslation_1;
  PRD(2,0,__AExprTranslation_18);FLD(__AExprTranslation_18,2)=__ANameTranslation_1;
  FLD(__AExprTranslation_18,1)=_AAn_3(__AAn_2,x1);}}




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

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

static OBJ _mt_4_1_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3);
 return r;}

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

static OBJ _mt_6_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,5);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 return r;}

static OBJ _mt_6_5_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),t1);
 return r;}
static OBJ _mt_6_5_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;FLDCLS(t,5)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

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

static OBJ _mt_8_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,5);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 return r;}

static OBJ _mt_8_0_7(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,7);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 FLDCLS(r,6)=t6;
 FLDCLS(r,7)=t7;
 return r;}

static OBJ _mt_8_3_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1,t2,t3,t4,t5);
 return r;}

static OBJ _mt_8_5_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  FLDCLS(r,2)=FLDCLS(t,2);
  FLDCLS(r,3)=FLDCLS(t,3);
  FLDCLS(r,4)=FLDCLS(t,4);
  FLDCLS(r,5)=FLDCLS(t,5);
  COPY(FLDCLS(r,1),1);
  COPY(FLDCLS(r,2),1);
  COPY(FLDCLS(r,3),1);
  COPY(FLDCLS(r,4),1);
  COPY(FLDCLS(r,5),1);}
 INCCLS(r,5,2);
 FLDCLS(r,6)=t1;
 FLDCLS(r,7)=t2;
 return r;}

static OBJ _mt_8_5_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),t1,t2,t3);
 return r;}

static OBJ _mt_8_7_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  COPY(FLDCLS(t,6),1);
  COPY(FLDCLS(t,7),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),FLDCLS(t,7),t1);
 return r;}
static OBJ _mt_8_7_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),FLDCLS(t,7),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;FLDCLS(t,5)=NIL;FLDCLS(t,6)=NIL;FLDCLS(t,7)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

static OBJ _mt_9_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,5);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 return r;}

static OBJ _mt_9_0_9(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8,OBJ t9) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8,t9);
 return r;}

static OBJ _mt_9_5_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),t1,t2,t3,t4);
 return r;}

init_AExprTranslation()
{
 static int visited=0; if(visited) return; visited=1;
 init_AMap();
 init_ADyn();
 init_ANatConv();
 init_ACompose();
 init_ANat();
 init_ADenotation();
 init_ATriple();
 init_ASeqMap();
 init_ASourceAn();
 init_ASeqReduce();
 init_ATypeAn();
 init_ASeqFilter();
 init_AAc();
 init_ASeqZip();
 init_AInterOpal();
 init_ABuiltin();
 init_AInterOpalVars();
 init_AInterOpalAccess();
 init_AParameterTranslation();
 init_ANameTranslation();
 init_ASeq();
 init_AFctTranslation();
 init_AIde();
 init_AReal();
 init_ANatMap();
 init_AArray();
 init_AAn();
 init_ASetByBST();
 init_AOptimAn();
 init_ABSTree();
 init_ATransAn();
 init_ATree();
 init_APragmaAn();
 init_AOption();
 init_AStore();
 init_AFormat();
 init_AString();
 init_ACom();
 init_AStream();
 init_AVoid();
 init_AFmt();
 init_AChar();
 init_AFile();
 init_AInt();
 init_ASet();
 init_APair();
 init_AIdeMap();
 DEN("> : ",__AExprTranslation_31);
 CLS(2,_AExprTranslation_30,__AExprTranslation_30);
 CLS(2,_AExprTranslation_29,__AExprTranslation_29);
 DEN("tuple deconstruction always succeeds",__AExprTranslation_28);
 LCLS(1,_AExprTranslation_27,__AExprTranslation_27);
 CLS(2,_AExprTranslation_26,__AExprTranslation_26);
 CLS(2,_AExprTranslation_25,__AExprTranslation_25);
 CLS(2,_AExprTranslation_24,__AExprTranslation_24);
 CLS(4,_AExprTranslation_23,__AExprTranslation_23);
 CLS(4,_AExprTranslation_21,__AExprTranslation_21);
 CLS(5,_AExprTranslation_20,__AExprTranslation_20);
 CLS(2,_AExprTranslation_19,__AExprTranslation_19);
 CLS(4,_AExprTranslation_17_c,__AExprTranslation_17);
 CLS(4,_AExprTranslation_16,__AExprTranslation_16);
 CLS(4,_AExprTranslation_15,__AExprTranslation_15);
 CLS(2,_AExprTranslation_14_c,__AExprTranslation_14);
 CLS(1,_AExprTranslation_13,__AExprTranslation_13);
 DEN("undefined selection ",__AExprTranslation_44);
 CLS(2,_AExprTranslation_12,__AExprTranslation_12);
 DEN(" not implemented",__AExprTranslation_43);
 CLS(8,_AExprTranslation_11,__AExprTranslation_11);
 CLS(2,_AExprTranslation_42,__AExprTranslation_42);
 CLS(9,_AExprTranslation_10_c,__AExprTranslation_10);
 LCLS(1,_AExprTranslation_41,__AExprTranslation_41);
 CLS(6,_AExprTranslation_9_c,__AExprTranslation_9);
 LCLS(1,_AExprTranslation_40,__AExprTranslation_40);
 CLS(8,_AExprTranslation_8,__AExprTranslation_8);
 CLS(4,_AExprTranslation_7,__AExprTranslation_7);
 CLS(3,_AExprTranslation_6,__AExprTranslation_6);
 CLS(1,_AExprTranslation_5,__AExprTranslation_5);
 CLS(2,_AExprTranslation_36,__AExprTranslation_36);
 CLS(2,_AExprTranslation_35,__AExprTranslation_35);
 CLS(5,_AExprTranslation_3,__AExprTranslation_3);
 DEN("",__AExprTranslation_34);
 CLS(3,_AExprTranslation_2,__AExprTranslation_2);
 DEN("missing else in ",__AExprTranslation_33);
 CLS(6,_AExprTranslation_1,__AExprTranslation_1);
 DEN(" at <",__AExprTranslation_32);
 MTH(4,0,1,_mt_4_0_1);LZYMTH(4,0,1,_mt_4_0_1);
 MTH(4,0,3,_mt_4_0_3);LZYMTH(4,0,3,_mt_4_0_3);
 MTH(4,1,3,_mt_4_1_3);LZYMTH(4,1,3,_mt_4_1_3);
 MTH(4,3,1,_mt_4_3_1);LZYMTH(4,3,1,_mt_4_3_1_l);
 MTH(6,0,5,_mt_6_0_5);LZYMTH(6,0,5,_mt_6_0_5);
 MTH(6,5,1,_mt_6_5_1);LZYMTH(6,5,1,_mt_6_5_1_l);
 MTH(8,0,3,_mt_8_0_3);LZYMTH(8,0,3,_mt_8_0_3);
 MTH(8,0,5,_mt_8_0_5);LZYMTH(8,0,5,_mt_8_0_5);
 MTH(8,0,7,_mt_8_0_7);LZYMTH(8,0,7,_mt_8_0_7);
 MTH(8,3,5,_mt_8_3_5);LZYMTH(8,3,5,_mt_8_3_5);
 MTH(8,5,2,_mt_8_5_2);LZYMTH(8,5,2,_mt_8_5_2);
 MTH(8,5,3,_mt_8_5_3);LZYMTH(8,5,3,_mt_8_5_3);
 MTH(8,7,1,_mt_8_7_1);LZYMTH(8,7,1,_mt_8_7_1_l);
 MTH(9,0,5,_mt_9_0_5);LZYMTH(9,0,5,_mt_9_0_5);
 MTH(9,0,9,_mt_9_0_9);LZYMTH(9,0,9,_mt_9_0_9);
 MTH(9,5,4,_mt_9_5_4);LZYMTH(9,5,4,_mt_9_5_4);
 ___AExprTranslation_18();
 CPPRD(__AExprTranslation_18,1);
 PRD1(2,__AExprTranslation_37);FLD1(__AExprTranslation_37,1)=__AExprTranslation_18;FLD1(__AExprTranslation_37,2)=__ASeq_6;
 COPY(__AFctTranslation_1,1);
 PRD1(2,__AExprTranslation_38);FLD1(__AExprTranslation_38,1)=__AFctTranslation_1;FLD1(__AExprTranslation_38,2)=__ASeq_6;
 CPPRD(__ABuiltin_12,1);
 PRD(1,1,__AExprTranslation_39);FLD(__AExprTranslation_39,1)=__ABuiltin_12;}

